我在我的系统的标准C++库中看到了这一点,以及我正在使用的库中的一些头文件.
这两个定义的语义是什么?对于像这样的#defines,除了源本身之外还有一个很好的参考吗?
Din*_*ngo 46
__STDC_LIMIT_MACROS并且__STDC_CONSTANT_MACROS是一种解决方法,允许C++程序使用stdint.hC99标准中指定的不在C++标准中的宏.宏,如UINT8_MAX,INT64_MIN和INT32_C()可被已在C++以其他方式应用定义.为了让用户来决定是否要定义为C99确实宏,许多实现要求__STDC_LIMIT_MACROS和__STDC_CONSTANT_MACROS之前定义stdint.h是包括在内.
这不是C++标准的一部分,但它已被多个实现所采用.
以上问题已经消失。C99是一个旧标准,因此在C ++ 11标准中已明确推翻了该标准,因此C11删除了此规则。
那里有更多详细信息: