参考:https://blog.csdn.net/duguduchong/article/details/7709482
https://bbs.csdn.net/topics/391892978?page=1
问题描述:直接输出一个大整数常量时会出现改警告。如下:
1 #include <iostream> 2 #include <stdlib.h> 3 4 int main() { 5 printf("%d ",2147483648); //int型取值范围 -2147483648~2147483647 6 return 0; 7 }
原因:数字超出默认类型int型的表示范围。
在gcc中缺省使用C90标准编译,编译器将按C90标准将你的-2147483648转成无符号的十进制(但不影响你的结果)。
解决方法:1:不用管。
2:在该数字后加u(大小写无关),变为无符号整型(0~4294967295)。
3:在gcc的编译选项中加 --std=c99。
4:使用十六进制的数字,如0xFFFFFFFF