= some_function()), (a & 0x20) != 0) { ... }
или это опять декомпилятор изголяется?
Так стоп тут чёт не так
Легально. Но не уверен на все 100.
у оператора "запятая" r-value по второму (правому) выражению. Левое вычисляется, учитываются все эффекты, значение отбрасывается
Кастует интовую переменную в хз что и хочет что бы потом она по адресу была равна 0? Я все правильно понял?
А можно разжевать?
Нет, неправильно. Это х.з. что кастуется к инту. А операций с адресами я тут вообще не вижу.
вычисляется выражение слева от запятой, его значение игнорируется, затем вычисляется выражение справа от запятой - это значение используется как r-value оператора "запятая"
Верно. Значение выражения слева от запятой игнорируем. Но у нас тут уже выполнилось присвоение переменной.
вкратце - то что можно чему-то присвоить
ну да, это эффект оператора присвоение, но у него же есть и значение - вот оно отбрасывается
Спасибо за ответ, а функция которая переопределяет переменную а?
В си много чего легально, но лучше не делать, а то потом будет поддерживать склонный к насилию псих, знающий где ты живешь...
Не понял вопроса . Я вижу присвоение переменной а результата функции. Прототипа этой функции я не вижу. Если она возвращает значение которое может быть приведено к инту неявно, то так оно и будет. И это значение будет присвоено переменной а.
Я не успел дописать, вообщем у него в условии а присваивается результат функции, если оно тру, то идёт проверка условия дальше?
оно кладет в а результат вызова сам_фанкшн, затем считает a & 0x20 != 0
Вот тут я поплыл
нет ;) просто присваивается, в качестве условия идет значение того что справа от запятой
запятая - почти как точка с запятой, разделяет выражения. но в отличие от точки с запятой - возвращает результат последнего выражения в цепочке
Не так. У него результат функции присваивается переменной а. Дальше выполняется выражение справа от запятой. Безусловно. А вот по результату проверки a & 0x20 != 0 выполнится или не выполнится код за if.
Да теперь врубился, что сначала идёт присвоение, потом проверка
Легально, но приличные люди так не делают. :)
Приличные люди, кроме этого, не пишут на луа как на си!)
Обсуждают сегодня