我不知道大小等于float
而不是short int
,因为i的大小是short int
。
这是我的代码:
#include <stdio.h>
int main()
{
int x = 1;
short int i = 2;
float f = 3;
if (sizeof((x == 2) ? f : i) == sizeof(float))
printf("float\n");
else if (sizeof((x == 2) ? f : i) == sizeof(short int))
printf("short int\n");
}
答案 0 :(得分:2)
条件表达式的类型总是在编译时定义。
由于提升了(x == 2) ? f : i
,表达式float
的类型为i
。
sizeof
不会被评估(VLA除外),因此甚至不会检查x == 2
是否是