Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我知道extern默认情况下函数在 C 中标记,也可以extern在 C 中使用变量(如果它在其他文件中初始化或者如果我编写extern int foo = 1;)。但是我可以使用externC 宏,因为它们的行为类似于函数吗?
extern
extern int foo = 1;
除非在 C99 中发生了根本性的变化,否则预处理器宏没有存储类。您不能在不同时定义它们的情况下声明它们。编译器甚至不会以与处理其他标识符相同的方式处理它们——它们是一种纯文本翻译,(至少在概念上)甚至在编译器尝试任何类型的名称查找之前就发生了。