我可以使用extern用于宏吗?

时间:2012-10-09 04:25:14

标签: c macros extern

我知道默认情况下函数在C中被标记为extern,并且也可以在C中使用extern变量(如果它在其他文件中初始化或者我写{{1} }})。但是我可以将extern int foo = 1;用于C宏,因为它们的行为类似于函数吗?

1 个答案:

答案 0 :(得分:10)

除非在C99中发生根本变化,否则预处理器宏没有存储类。如果不同时定义它们,则无法声明它们。编译器甚至不会像处理其他标识符那样处理它们 - 它们是纯粹的文本转换(至少在概念上)甚至在编译器尝试任何类型的名称查找之前都会发生。