码迷,mamicode.com
首页 > 其他好文 > 详细

warning: this decimal constant is unsigned only in ISO C90问题的处理及理解

时间:2018-11-18 17:05:23      阅读:203      评论:0      收藏:0      [点我收藏+]

标签:tail   符号整型   问题   clu   std   结果   大整数   net   only   

参考: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

warning: this decimal constant is unsigned only in ISO C90问题的处理及理解

标签:tail   符号整型   问题   clu   std   结果   大整数   net   only   

原文地址:https://www.cnblogs.com/BANLOONG/p/9978382.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!