189 похожих чатов

Так вообще легально делать в C ? int a=5; if ( (a

= some_function()), (a & 0x20) != 0) { ... }
или это опять декомпилятор изголяется?

22 ответов

3 просмотра

Так стоп тут чёт не так

Легально. Но не уверен на все 100.

у оператора "запятая" r-value по второму (правому) выражению. Левое вычисляется, учитываются все эффекты, значение отбрасывается

Peter Moroz
Легально. Но не уверен на все 100.

Кастует интовую переменную в хз что и хочет что бы потом она по адресу была равна 0? Я все правильно понял?

Dn T
Кастует интовую переменную в хз что и хочет что бы...

Нет, неправильно. Это х.з. что кастуется к инту. А операций с адресами я тут вообще не вижу.

Serjio M
А можно разжевать?

вычисляется выражение слева от запятой, его значение игнорируется, затем вычисляется выражение справа от запятой - это значение используется как r-value оператора "запятая"

uint32
вычисляется выражение слева от запятой, его значен...

Верно. Значение выражения слева от запятой игнорируем. Но у нас тут уже выполнилось присвоение переменной.

uint32
вычисляется выражение слева от запятой, его значен...

вкратце - то что можно чему-то присвоить

Peter Moroz
Верно. Значение выражения слева от запятой игнорир...

ну да, это эффект оператора присвоение, но у него же есть и значение - вот оно отбрасывается

Peter Moroz
Нет, неправильно. Это х.з. что кастуется к инту. А...

Спасибо за ответ, а функция которая переопределяет переменную а?

В си много чего легально, но лучше не делать, а то потом будет поддерживать склонный к насилию псих, знающий где ты живешь...

Dn T
Спасибо за ответ, а функция которая переопределяет...

Не понял вопроса . Я вижу присвоение переменной а результата функции. Прототипа этой функции я не вижу. Если она возвращает значение которое может быть приведено к инту неявно, то так оно и будет. И это значение будет присвоено переменной а.

Peter Moroz
Не понял вопроса . Я вижу присвоение переменной а ...

Я не успел дописать, вообщем у него в условии а присваивается результат функции, если оно тру, то идёт проверка условия дальше?

Dn T
Я не успел дописать, вообщем у него в условии а пр...

оно кладет в а результат вызова сам_фанкшн, затем считает a & 0x20 != 0

Dn T
Я не успел дописать, вообщем у него в условии а пр...

нет ;) просто присваивается, в качестве условия идет значение того что справа от запятой

Dn T
Вот тут я поплыл

запятая - почти как точка с запятой, разделяет выражения. но в отличие от точки с запятой - возвращает результат последнего выражения в цепочке

Dn T
Я не успел дописать, вообщем у него в условии а пр...

Не так. У него результат функции присваивается переменной а. Дальше выполняется выражение справа от запятой. Безусловно. А вот по результату проверки a & 0x20 != 0 выполнится или не выполнится код за if.

Peter Moroz
Не так. У него результат функции присваивается пер...

Да теперь врубился, что сначала идёт присвоение, потом проверка

Легально, но приличные люди так не делают. :)

Electronics Designer
Легально, но приличные люди так не делают. :)

Приличные люди, кроме этого, не пишут на луа как на си!)

Похожие вопросы

Обсуждают сегодня

@MrMiscipitlick А можешь макрос написать, который будет вычислять смещение относительно переданных меток? Просто .label1-.label2, и вернуть значение.
КТ315
35
я не магистр хаскеля, но разве не может лейзи тип конвертнуться в не-лейзи запросив вычисление содержимого прям при инициализации?
deadgnom32 λ madao
100
А еще в перле можно уже @arr1 + @arr2?
Sergei Zhmylove
53
Заметил в ghci 9.4.8: > :t (<*>) @((->)_) (<*>) @((->)_) :: (w -> (a -> b)) -> (w -> a) -> w -> b Разве не должно (w -> (a -> b)) быть записано как (w -> a -> b)? Это баг, ил...
Михаил
13
Any electron dev here?
Sayanth Tezro
12
Подобного рода ;Следующие три строки это директивы ассемблера, ;которые можно не задавать, т.к.работаем в Visual Studio. ;Символ ";" - это начало однострочного комментария ...
Егор Анелькин
3
Привет всем. появился вопрос. Разрабатываю сайт, в данный момент он запущен. Хостинг beget. Добавляю на сайт яндекс метрику с помощью полей client-settings (взято отсюда http...
Andrew
2
так это может кто что знает или использует что-то как макбук только не макбук? на 13…14 дюймов
Michael
9
Подскажите, где смотреть результат выполнения программы? Код: ;.686 ;Система команд процессора 686 ;.MODEL FLAT,stdcall ;Модель памяти плоская, станда...
Егор Анелькин
5
Кто-нибудь знает почему SPM клонирует репо целиком? Некоторые репы просто огромные, как та же swift-syntax которая нужна для использования макросов. Сначала подумал, что это...
iMike
6
Карта сайта