【发布时间】:2018-08-06 15:32:03
【问题描述】:
void foo(void) {
unsigned int a = 6;
int b = -20;
if (a+b > a) {
printf("> a");
} else {
printf("< a");
}
}
我试图了解上面的整数提升示例发生了什么。我知道a = 6 和b = -20 的输出应该是> a,因为b 被提升为unsigned int。但是,如果我分配 b = -5,则输出将转到 < a。由于值b = -5 也被提升为unsigned int,所以在这种情况下输出不应该相同吗?
【问题讨论】:
-
这个FAQ已经被问过很多次了。
标签: c integer-promotion