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

Чет поневоле наткнулся на классический секвенс поинт обсер var i =

0;
i += i += 1;

в результате i будет равен угадайте чему?

12 ответов

27 просмотров

это реально кто-то так пишет?

невидимка- Автор вопроса
Ayrat Hudaygulov
это реально кто-то так пишет?

это я попытался написать тест для компиля

ну чисто с теоретической точки зрения, тут i += (i += 1); далее раскрываем первую операцию i = i + (i += 1) подставляем левый операнд i = 0 + (I +=1) раскрываем правый операнд i = 0 + (i = i + 1) подставляем левый операнд во внутреннюю шнягу i = 0 + (i = 0 + 1) теперь i =1, а внутренняя шняга возвращает 1 остаётся i = 0 + 1 i снова 1

невидимка- Автор вопроса
Ayrat Hudaygulov
ну чисто с теоретической точки зрения, тут i += (...

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

Ayrat Hudaygulov
ну чисто с теоретической точки зрения, тут i += (...

А чойто оно у тебя левоассоциативное, если в шарпике справа

Антон
А чойто оно у тебя левоассоциативное, если в шарпи...

вопрос хороший, но не уверен что речь про конкретный компилятор

Ayrat Hudaygulov
вопрос хороший, но не уверен что речь про конкретн...

Ну это же в спеке регламентируется, а компилятор может делать что хочет: воровать, убивать, ебать гусей - если о крестах/сижке говорить, но там это сделано же как оптимизация компиляции хуёмоё

Антон
Ну это же в спеке регламентируется, а компилятор м...

у меня есть мнение что речь про цезиум вообще была и сишные компиляторы

невидимка- Автор вопроса
Антон
А чойто оно у тебя левоассоциативное, если в шарпи...

тут не столько ассоциативность операций значение имеет, сколько то как определен +=, т.к. тут играет роль не "левая часть выражения" целиком, а lvalue слева от оператора

невидимка- Автор вопроса
Ayrat Hudaygulov
у меня есть мнение что речь про цезиум вообще была...

конкретно пример был вообще про рослин, и да, в рослине код дает единичку

UB 1 или 2, притом результат может зависеть от опций компилятора

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

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

а через 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
вы делали что-то подобное и как? может есть либы готовые? увидел картинку нокода, где всё линиями соединено и стало интересно попробовать то же в ddl на lua сделать. решил с ч...
Victor
8
Ребят в СИ можно реализовать ООП?
Николай
33
Подскажите пожалуйста, как в CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); получить наз...
A Z
7
Карта сайта