Для 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, как и ожидалось. Что происходит?