首页 > 解决方案 > 为什么 gcc 使“!(T_MAX+T_MAX+2)”等于 0?

问题描述

对于 gcc 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 的预期。怎么了?

标签: cgcc

解决方案


推荐阅读