參考: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\n",2147483648); //int型取值范圍 -2147483648~2147483647 6 return 0; 7 }
原因:數字超出默認類型int型的表示范圍。
在gcc中缺省使用C90標准編譯,編譯器將按C90標准將你的-2147483648轉成無符號的十進制(但不影響你的結果)。
解決方法:1:不用管。
2:在該數字后加u(大小寫無關),變為無符號整型(0~4294967295)。
3:在gcc的編譯選項中加 --std=c99。
4:使用十六進制的數字,如0xFFFFFFFF