我在系统的标准C++库以及我正在使用的库中的一些头文件中看到了这一点。
这两个定义的语义是什么?除了源代码本身,有没有像这样的#定义的很好的参考?
发布于 2009-06-12 13:16:12
__STDC_LIMIT_MACROS和__STDC_CONSTANT_MACROS是一种变通方法,允许C++程序使用C99标准中指定的stdint.h宏,而不是C++标准中指定的宏。宏(如UINT8_MAX、INT64_MIN和INT32_C() )可能已经以其他方式在C++应用程序中定义。为了允许用户决定是否要像C99那样定义宏,许多实现要求在包含stdint.h之前定义__STDC_LIMIT_MACROS和__STDC_CONSTANT_MACROS。
这不是C++标准的一部分,但它已经被多个实现采用。
发布于 2014-10-23 16:16:16
上面的问题已经消失了。C99是一个旧标准,因此在C++11标准中已经明确否定了这一点,因此C11删除了这一规则。
更多详细信息请访问:
发布于 2009-06-12 13:06:11
在C++下的stdint.h中,它们控制是否定义像INT32_MAX或INT32_C(v)这样的宏。有关更多信息,请参阅您的平台的stdint.h。
https://stackoverflow.com/questions/986426
复制相似问题