繁体   English   中英

在gcc中已经定义了哪些C预处理器宏?

[英]What C preprocessor macros have already been defined in gcc?

gcc ,如何在编译C程序期间检查哪些C预处理程序定义到位,尤其是定义了哪些标准或特定于平台的宏定义?

预定义的宏取决于标准和编译器实现它的方式。

对于GCC: http//gcc.gnu.org/onlinedocs/cpp/Predefined-Macros.html

对于Microsoft Visual Studio 8: http : //msdn.microsoft.com/zh-cn/library/b0084kay(VS.80).aspx

此Wikipedia页面http://en.wikipedia.org/wiki/C_preprocessor#Compiler-specific_predefined_macros列出了如何在某些预定义宏中转储

Sourceforge的Predef项目可能是针对编译器和平台的特定组合的预定义宏的来源。 他们试图维护所有平台上所有C和C ++编译器中所有预定义宏的目录。 在实践中,它们涵盖了许多用于GCC的平台,以及少量其他编译器。

他们通过仔细阅读文档以及Shell脚本(通过硬方法预定义了哪些宏)的组合来实现此目标:尝试使用它们。 我的理解是,它实际上会尝试在编译器和/或预处理器的可执行映像中找到的每个字符串,以查看其是否具有预定义的含义。

他们会很乐意将尚未使用的任何信息添加到数据库中。

程序可以在某个时刻定义一个宏,然后删除该定义,然后在那之后提供一个不同的定义。 因此,在程序的不同点,宏可能具有不同的定义,或者根本没有任何定义。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM