【发布时间】:2020-02-09 10:48:12
【问题描述】:
我想知道预定义的宏在哪里定义和驻留?
预定义宏是在编译器或预处理器中定义的,它有一个字典来保存源代码中的预定义宏。
我的意思是__FILE__宏在编译器中有一个定义和等价值,并且在编译器中已经定义了是真的吗?
【问题讨论】:
-
__FILE__、__LINE__和其他宏在预处理时被 preprocessor 替换,就像所有其他宏一样。 -
它们没有在任何地方定义。你认为这会怎样?
-
它们被内置在预处理器中并有效地充当关键字。
-
参见例如Standard Predefined Macros 用于 GCC,其他编译器也是如此。
-
@Nazim 远不清楚你在这里实际问的是什么。 当然预定义的宏会以某种方式在预处理器的源代码中体现出来。否则他们将无法工作。但在每种情况下,具体如何做到这一点取决于作者,并且可能也因实际宏而异。
标签: c compiler-construction preprocessor language-concepts predefined-macro