Пожалуйста, посмотрите на этот код:
#include <stdio.h>
int main(void)
{
short s;
int i = 65696;
float f = 65696.0F;
printf("sizeof(short) = %lu\n", sizeof(short));
s = i;
printf("s = %hd\n", s);
s = f;
printf("s = %hd\n", s);
s = 65696;
printf("s = %hd\n", s);
s = 65696.0F;
printf("s = %hd\n", s);
return 0;
}
Он дал результат как:
sizeof(short) = 2
s = 160
s = 160
s = 160
s = 32767
В последней строке почему это 32767, а не 160? Какая разница между словами f = 65696.0F; s = f;
и s = 65696.0F;
?