我知道函数在 C 中默认被标记为 extern
并且也可以在 C 中使用 extern
变量(如果它在其他文件中初始化或如果我写 extern int foo = 1;
)。但是我可以将 extern
用于 C 宏,因为它们的行为类似于函数吗?
最佳答案
除非在 C99 中发生根本性的改变,否则预处理器宏没有存储类。您不能在不同时定义它们的情况下声明它们。编译器甚至不会像对待其他标识符那样对待它们——它们是纯文本翻译(至少在概念上)甚至在编译器尝试任何类型的名称查找之前发生。
关于我可以将 extern 用于宏吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12792774/