我想知道预定义的宏在哪里定义和驻留?
预定义的宏是在编译器或预处理器中定义的,它有一个字典来保存源代码中的预定义宏。
我的意思是__FILE__
宏在编译器中具有定义和等效值,并且已经在编译器中进行了定义,这是真的吗?
我想知道预定义的宏在哪里定义和驻留?
预定义的宏是在编译器或预处理器中定义的,它有一个字典来保存源代码中的预定义宏。
我的意思是__FILE__
宏在编译器中具有定义和等效值,并且已经在编译器中进行了定义,这是真的吗?
C 预处理器,对于 GCC 版本 9.2.0,第 3.7 章(预定义宏)说:
预定义了几个类似对象的宏;您在不提供定义的情况下使用它们。
后来,例如
__LINE__ -- 该宏以十进制整数常量的形式展开为当前输入的行号。虽然我们称它为预定义宏,但它是一个非常奇怪的宏,因为它的“定义”会随着源代码的每一行而改变
这意味着在任何地方都没有这些宏的具体定义。在预处理期间,C 预处理器会跟踪它当前正在处理和替换的文件__FILE__
,__LINE__
以及相应的其他“特殊”宏。