在C99中,我包含了stdint.h,它给了我UINT32_MAX和uint32_t.但是,在C++中,UINT32_MAX被定义出来.我可以在包含stdint.h之前定义__STDC_LIMIT_MACROS,但是如果有人在已经包含stdint.h之后包含我的头文件,则这不起作用.
那么在C++中,找出uint32_t中可表示的最大值的标准方法是什么?
我已经在很多地方读过,整数溢出在C中定义得很好,与签名对应物不同.
下溢是一样的吗?
例如:
unsigned int x = -1; // Does x == UINT_MAX?
Run Code Online (Sandbox Code Playgroud)
谢谢.
我不记得在哪里,但我在某处读到无符号整数类型的算术是模块化的,所以如果是这种情况那么-1 == UINT_MAX mod(UINT_MAX + 1).