int 4字节 32bit 
sign int 取值范围-2,147,483,6482,147,483,647
但是  
int  m = -2,147,483,648 是错误的,报错:(error C4146: 一元负运算符应用于无符号类型,结果仍为无符号类型),
因为2,147,483,648大于sign int型的最大值2,147,483,647,所以被系统判别为无符号型int,此时便与2,147,483,648前面
的负号冲突,然后报错。 应当写为
int m = -2,147,483,647 - 1 int m = 2,147,483,647 则不报错。

解决方法:
1.
#define INT_MIN (-2147483647 - 1)   // minimum (signed) int value

 2. 

如果是int,可以用INT_MAX表示正无穷,INT_MIN表示负无穷,需要包含limits.h。
如果是double,可以用DBL_MAX表示正无穷,-DBL_MAX表示负无穷(注意不是DBL_MIN),需要包含float.h。

 

 

 

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2021-06-21
  • 2022-12-23
  • 2022-12-23
  • 2021-08-22
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2021-06-19
  • 2021-11-17
  • 2021-05-20
  • 2022-12-23
  • 2021-10-01
  • 2022-02-19
相关资源
相似解决方案