在C99中,我包含了stdint.h
,这为我提供了UINT32_MAX
和uint32_t
数据类型。然而,在C++中,UINT32_MAX
被定义出来。我可以在包含stdint.h
之前定义__STDC_LIMIT_MACROS
,但如果有人在包含stdint.h
之后包含我的标头,这将不起作用。
那么,在C++中,查找uint32_t
中可表示的最大值的标准方法是什么
发布于 2009-09-24 12:28:52
不确定uint32_t
,但对于基础类型(bool
、char
、signed char
、unsigned char
、wchar_t
、short
、unsigned short
、int
、<代码>D9、<代码>D10、<代码>D11、<代码>D12、<代码>D13和<代码>D14),您可以通过<代码>D16使用<代码>D15模板。
cout << "Minimum value for int: " << numeric_limits<int>::min() << endl;
cout << "Maximum value for int: " << numeric_limits<int>::max() << endl;
如果uint32_t
是上述其中之一的#define
,则此代码应开箱即用
cout << "Maximum value for uint32_t: " << numeric_limits<uint32_t>::max() << endl;
发布于 2009-09-24 12:28:01
std::numeric_limits<T>::max()
定义了T
类型的最大值。
发布于 2009-09-24 16:51:48
uint32_t将始终是32位的,并且始终是无符号的,所以您可以安全地手动定义它:
#define UINT32_MAX (0xffffffff)
你也可以这样做
#define UINT32_MAX ((uint32_t)-1)
https://stackoverflow.com/questions/1471353
复制相似问题