
George Unicorn.
30.08.2016
11:15:51
Сжатый

я люблю грин дей
30.08.2016
11:15:53
все к ноге
хотя теперь я не понимаю

George Unicorn.
30.08.2016
11:16:08

Google

я люблю грин дей
30.08.2016
11:16:13
почему 22

Славик
30.08.2016
11:18:01
наверное, операция = выполняется позже, чем i++
i=0;
i=i++;
> 0

George Unicorn.
30.08.2016
11:19:29
i=(i++)
Тогда сначало ++

Sergey
30.08.2016
11:25:35
i++ возвращает неизмененный результат, очевидно жеж
++i — возвращает измененный

George Unicorn.
30.08.2016
11:26:35

Yokai
30.08.2016
11:27:55

Славик
30.08.2016
11:28:06

Sergey
30.08.2016
11:28:24
0
1
вангую

Google

Sergey
30.08.2016
11:28:45
так стоп
я в сортах JS не разбираюсь
я ток по с и с++

Славик
30.08.2016
11:29:18
повтори то же и самое на си
будет интересно

Sergey
30.08.2016
11:29:24
ок

George Unicorn.
30.08.2016
11:29:42
И не в традициях бф

Славик
30.08.2016
11:30:35
int i = 0;
i=++i+10+i+++10;
printf("%d\n", i);

Yokai
30.08.2016
11:30:37
И не в традициях бф
у меня бф=бойфренд. Я чего-то не понимаю %) По мне так сложные выражения ненужны

Sergey
30.08.2016
11:30:50
не скомпилится же

Yokai
30.08.2016
11:30:57
int i = 0; printf("%d\n%d", i, i++);

George Unicorn.
30.08.2016
11:31:04
U

Славик
30.08.2016
11:31:09
да ну

George Unicorn.
30.08.2016
11:31:30
@yokaidev

Yokai
30.08.2016
11:31:46

George Unicorn.
30.08.2016
11:32:06

Sergey
30.08.2016
11:33:03
да ну
➜ ~/dev/c/increment clang main.c -o app
main.c:10:7: warning: multiple unsequenced modifications to 'i' [-Wunsequenced]
i=++i+10+i+++10;
^ ~~
1 warning generated.

Google

Sergey
30.08.2016
11:33:18
лол
фигасе

Славик
30.08.2016
11:33:27
warning же пофиг

Sergey
30.08.2016
11:33:33
i: 122

Славик
30.08.2016
11:33:42
скомпилилось?

Sergey
30.08.2016
11:33:47
ага

Славик
30.08.2016
11:33:58
вот так поворот

Yokai
30.08.2016
11:34:08
посмотрел. Всё равно выражаю недовольство, потому что отдел кадров таким кодом программистов проверяет => люди учатся писать\читать такой код => в продакшне компании получают такой код

Sergey
30.08.2016
11:34:47
поэтому надо компилить с -Werror
))))

Славик
30.08.2016
11:35:51
почему 122

Sergey
30.08.2016
11:36:01
потому что вероятно UB

Sergey
30.08.2016
11:36:08
точки следования

Yokai
30.08.2016
11:36:46
Можно ли как-нибудь без мучений на linux запаковать python-проект с зависимостями так, чтоб он на macos запустился? Такая ситуация, что похоже придется pure python2.7 использовать. MacOS у клиента и его мучать не хочется

Sergey
30.08.2016
11:36:55
на лурке есть про i++ + ++i
точнее скорее не ub, но unspecified
http://lurkmore.to/%2B%2Bi_%2B_%2B%2Bi
➜ ~/dev/c/increment gcc -Wall -Wextra main.c -o app
main.c: In function ‘main’:
main.c:10:6: warning: operation on ‘i’ may be undefined [-Wsequence-point]
i=++i+10+i+++10;
^
main.c:10:6: warning: operation on ‘i’ may be undefined [-Wsequence-point]
> may be undefined
забавно, что кланг такого предупреждения не выдаёт

Google

Sergey
30.08.2016
11:39:07
значит у него внутри по-другому написаны sequence points

Yokai
30.08.2016
11:40:13
»-Wextra
и -Wall

Sergey
30.08.2016
11:40:30
Ну
И что?

Yokai
30.08.2016
11:41:08

Sergey
30.08.2016
11:41:16
Уже

Admin
ERROR: S client not available

Sergey
30.08.2016
11:41:19
Пропихнул
Ну ты прикалываешься?
)
Я просто ноут убрал, сейчас не удобно
Скомпильте кто-нибудь на кланге со стеной

Славик
30.08.2016
11:44:38
эээ
попробуй со скобками

Penter
30.08.2016
11:46:07

Славик
30.08.2016
11:47:46
#include <stdio.h>
int main() {
int i = 0;
i=(++i)+10+(i++)+10;
printf("%d\n", i);
return 0;
}
22

Sergey
30.08.2016
11:51:44
Как просил

Google

Yokai
30.08.2016
11:53:14

Sergey
30.08.2016
11:55:30
Потому что это ub или unspecified
Вот когда cxx станет expression-oriented...
Просто _так_ писать не надо

Yokai
30.08.2016
12:01:10
_так_?
не так... Забыл как выделять жиром

Sergey
30.08.2016
12:02:23

Yokai
30.08.2016
12:03:04
:<
дождался, теперь у меня прав меньше, чем у бота

Sergey
30.08.2016
12:04:24
Если выражение раскрывается справа налево (возможно так и есть, я не помню), то
++i вернет 1
10 + 1
i ++ вернет 1
1 + 11 + 10

Славик
30.08.2016
12:11:06
i=(++i)+10+(i++)+10
i=1+10+(i++)+10 //(i=1
i=1+10+1+10 //i=2
i=22 //но сейчас, пока эта операция еще выполняется i=2, а я думал, что сначала будет i=22, а потом отработает i++

Sergey
30.08.2016
12:12:48
https://en.wikipedia.org/wiki/Sequence_point
Там написано, что при вычислении выражения
f() + g()
Либо f, либо g может выполнится первым

Славик
30.08.2016
12:27:28
вот на примере и разрулили
норм

Langepas
30.08.2016
13:44:42
Ребята мне необходима помощь