2 qq 29136307 qq_29136307 于 2015.06.18 16:16 提问

为什么下述程序在VC中可编译,在gcc中提示warning

#include
int main ()
{
int a=3,b=4,c=5;
float x=1.2,y=2.4,z=-3.6;
long u=51274,n=128765;
char c1='a';
char c2='b';
printf("a=%2d b=%2d c=%2d\n",a,b,c);
printf("x=%8f,y=%8f,z=%9f\n",x,y,z);
printf("x+y=%5.2f y+z=%5.2f z+x=%5.2f\n",x+y,y+z,z+x);
printf("u=%6d n=%9d\n",u,n);
printf("c1='%c' or %d\n",c1,c1);
printf("c2='%c' or %d\n",c2-32,c2);
}

7个回答

ycg514230
ycg514230   Rxr 2015.06.18 16:20

有什么警告内容啊?警告一般可以不管的

tongyi55555
tongyi55555   2015.06.18 17:02

不同的编译器当然处理方式不一样了,警告不用管

albertbush
albertbush   2015.06.18 17:07

你用%d打印长整形,编译器告诉你有可能溢出。应该是用%ld。
警告这东东,不一定要管,但是很有可能问题就出在警告里(当然大部分时间是不出问题)。

albertbush
albertbush 顺便说一句,我没把你的程序在vs里面试过。但是根据经验,vs对这个应该也会报警告的吧。
2 年多之前 回复
cuiwei1026522829
cuiwei1026522829   Ds   Rxr 2015.06.18 18:31

应该是部分代码可能存在安全隐患,所以提示你,

baidu_25298443
baidu_25298443   2015.06.18 19:44

理论应该是你的long应该是ld,还有返回值

zhangweilst
zhangweilst   2015.06.19 12:15

警告说什么了?不同的编译器,处理不一样。

G3110402105
G3110402105   2015.06.19 13:13

你这代码不可能没警告吧,“#include”头文件的具体名称呢?

Csdn user default icon
上传中...
上传图片
插入图片