zoukankan      html  css  js  c++  java
  • warning: this decimal constant is unsigned only in ISO C90问题的处理及理解

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

  • 相关阅读:
    Java类加载机制
    DAY18
    DAY17
    DAY16
    DAY15
    DAY14
    DAY13
    DAY12
    DAY11
    DAY10
  • 原文地址:https://www.cnblogs.com/BANLOONG/p/9978382.html
Copyright © 2011-2022 走看看