Почему g cc делает "! (T_MAX + T_MAX + 2)" равным 0? - PullRequest
0 голосов
/ 04 августа 2020

Для g cc 9.3.0, когда я пытаюсь напечатать его как

int x = 0x7fffffff;
printf("%d", !(x+x+1+1));

, он дает мне 0. Но когда я пытаюсь напечатать его как

int temp = (x+x+1+1);
temp = !temp;
printf("%d", temp);

он дает мне 1, как и ожидалось. Что происходит?

...