为什么下述程序在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);
}

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

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

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

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

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

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

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