在 C99 中,我包括 stdint.h
这给了我 UINT32_MAX
以及 uint32_t
数据类型。然而,在 C++ 中, UINT32_MAX
被定义了。我可以在包含 --- __STDC_LIMIT_MACROS
stdint.h
,但是如果有人在已经包含 stdint.h
自己之后包含我的标题,这将不起作用。
那么在 C++ 中,找出 uint32_t
中可表示的最大值的标准方法是什么?
原文由 kdt 发布,翻译遵循 CC BY-SA 4.0 许可协议
Not sure about
uint32_t
, but for fundamental types (bool
,char
,signed char
,unsigned char
,wchar_t
,short
,unsigned short
,int
,unsigned int
,long
,unsigned long
,float
,double
andlong double
) you can use thenumeric_limits
templates via#include <limits>
.如果
uint32_t
是上述之一的#define
,则此代码应该开箱即用