【发布时间】:2012-12-01 10:18:45
【问题描述】:
考虑代码:
int foo(void)
{
_Bool b = 1; // is true
int i = 42; // mean true in conditions
if (i == b)
return 1;
else if ((_Bool)i == b)
return 2;
else
return 3;
}
根据 C 标准(C99 或 C11),此函数将返回什么?
附:在带有 -std=c99 选项的 GCC 4.7.2 上,该函数返回 2。
【问题讨论】: