问题描述
- 为什么下述程序在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=%2dn",a,b,c);
printf("x=%8f,y=%8f,z=%9fn",x,y,z);
printf("x+y=%5.2f y+z=%5.2f z+x=%5.2fn",x+y,y+z,z+x);
printf("u=%6d n=%9dn",u,n);
printf("c1='%c' or %dn",c1,c1);
printf("c2='%c' or %dn",c2-32,c2);
}
解决方案
有什么警告内容啊?警告一般可以不管的
解决方案二:
不同的编译器当然处理方式不一样了,警告不用管
解决方案三:
你用%d打印长整形,编译器告诉你有可能溢出。应该是用%ld。
警告这东东,不一定要管,但是很有可能问题就出在警告里(当然大部分时间是不出问题)。
解决方案四:
应该是部分代码可能存在安全隐患,所以提示你,
解决方案五:
理论应该是你的long应该是ld,还有返回值
解决方案六:
警告说什么了?不同的编译器,处理不一样。
解决方案七:
你这代码不可能没警告吧,“#include”头文件的具体名称呢?
时间: 2024-10-30 18:50:52