#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");
}
Здесь выражение ((x == 2) ? f : i)
вычисляется в i
который имеет короткий Int типа .. размер короткого Int = 2, тогда как SizeOf поплавок 4 byts.output должен быть «коротким Int», но im получение выхода «float»SizeOf стоимости условного оператора:
Почему вы кричите? – Biffen
Связанные: http://stackoverflow.com/questions/8535226/return-type-of-ternary-conditional-operator –