5

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

4

1 回答 1

11

除非在 C99 中发生了根本性的变化,否则预处理器宏没有存储类。您不能在不同时定义它们的情况下声明它们。编译器甚至不会以与处理其他标识符相同的方式处理它们——它们是一种纯文本翻译,(至少在概念上)甚至在编译器尝试任何类型的名称查找之前就发生了。

于 2012-10-09T04:28:43.833 回答