预定义宏在C中的什么位置?

问题描述 投票:-1回答:1

我想知道预定义的宏在哪里定义和驻留在哪里?

预定义的宏在编译器或预处理器中定义,后者具有在源代码中保存预定义的宏的字典。

我的意思是__FILE__宏在编译器中具有定义和等效值,并且定义是在编译器中完成的吗?

c compiler-construction preprocessor language-concepts predefined-macro
1个回答
3
投票

[The C Preprocessor, For GCC Version 9.2.0,第3.7章(预定义的宏)说:

预定义了多个类似对象的宏;您可以在不提供定义的情况下使用它们。

和更高版本,例如

__ LINE __-此宏扩展为当前输入行号,形式为十进制整数常量。虽然我们将其称为预定义宏,但它是一个非常奇怪的宏,因为其“定义”随源代码的每一行而发生变化]


意味着在任何地方都没有这些宏的具体定义。在预处理期间,C预处理器会跟踪其当前正在处理的文件,并相应地替换__FILE____LINE__和其他“特殊”宏。

© www.soinside.com 2019 - 2024. All rights reserved.