我在系统的标准C++库以及我正在使用的库中的一些头文件中看到了这一点。
这两个定义的语义是什么?除了源代码本身之外,对于这样的#define,是否有很好的引用?
最佳答案
__STDC_LIMIT_MACROS
和__STDC_CONSTANT_MACROS
是一种变通办法,它允许C++程序使用C99标准中指定的stdint.h
宏,而这些宏不在C++标准中。诸如UINT8_MAX
,INT64_MIN
和INT32_C()
之类的宏可能已在C++应用程序中以其他方式定义。为了允许用户决定是否要像C99那样定义宏,许多实现要求在包含__STDC_LIMIT_MACROS
之前先定义__STDC_CONSTANT_MACROS
和stdint.h
。
这不是C++标准的一部分,但已被多个实现所采用。
关于c++ - __STDC_LIMIT_MACROS和__STDC_CONSTANT_MACROS是什么意思?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/986426/