报警“warning: this decimal constant is unsigned only in ISO C90”通常出现在默认型存储不够的情况下。
 
例如下面这段代码:
#include<stdio.h> 

int main(int argc,char *argv[]){
  unsigned int i = 2394967295;
  printf("%d",i);

  return 0;
}
编译时,GCC编译器会抛出以下warning:
$ gcc -o test iso_c90_warning.c 
iso_c90_warning.c: In function ‘main’:
iso_c90_warning.c:4: warning: this decimal constant is unsigned only in ISO C90
$
C语言中常量值默认是一个32位的有符号整型数。由于2394967295无法用32位的有符号整型数表示,所以会有报警产生。
 
解决方法有两种:
 
用99标准编译
$ gcc -std=c99 -o test iso_c90_warning.c
$
强制转型
unsigned int i = 2394967295U;




相关文章:

  • 2022-12-23
  • 2021-12-16
  • 2021-04-13
  • 2021-05-18
  • 2021-06-23
猜你喜欢
  • 2022-12-23
  • 2022-03-05
  • 2022-02-26
  • 2022-12-23
  • 2022-12-23
  • 2021-12-15
  • 2022-12-23
相关资源
相似解决方案