- 論壇徽章:
- 0
|
各位大俠,小弟在寫一個(gè)程序時(shí)有一個(gè)疑問:GCC為什么不會(huì)對(duì)double賦值給float型變量產(chǎn)生告警?VC上則會(huì)告警,我的系統(tǒng)是Ubuntu 12.0,
程序如下:
ncludei<stdio.h>
int main()
{
int lowest = 0;
int uppest = 300;
int step = 20;
int fahr = lowest;
float celsius;
while(fahr <= uppest)
{
celsius = 5.0 / 9 * (fahr - 32);
printf("fahr = %d\tcelsius=%f\n", fahr, celsius);
fahr += step;
}
printf("sizeof(float)= %d,\tsizeof(double)= %d, sizeof(long double)= %d\n", sizeof(float), sizeof(double), sizeof(long double));
return 0;
}
編譯時(shí)沒有產(chǎn)生告警,我預(yù)期是在 celsius = 5.0 / 9 * (fahr - 32);產(chǎn)生告警的。另外 printf("sizeof(float)= %d,\tsizeof(double)= %d, sizeof(long double)= %d\n", sizeof(float), sizeof(double), sizeof(long double));輸出的結(jié)果如下:sizeof(float)= 4, sizeof(double)= 8, sizeof(long double)= 12
請(qǐng)大神指點(diǎn),多謝~
|
|