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

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

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

22 ответов

24 просмотра

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

Легально. Но не уверен на все 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
Легально, но приличные люди так не делают. :)

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

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

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

а через ESC-код ?
Alexey Kulakov
29
30500 за редактор? )
Владимир
47
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
Вот еще странный косяк, подскажите как бороться. Я git clone сделал себе всего embassy и примеры там запускаю. Всё хорошо. Но вот решил в cargo.toml зависимости не как в приме...
Lukutin R2AJP
1
вы делали что-то подобное и как? может есть либы готовые? увидел картинку нокода, где всё линиями соединено и стало интересно попробовать то же в ddl на lua сделать. решил с ч...
Victor
8
Ребят в СИ можно реализовать ООП?
Николай
33
Карта сайта