例如abc.c包含一个变量
#define NAME "supreeth"
可以 extern def.cNAME
中的变量吗?
您不能extern
与宏一起使用。但是如果你想让你的宏被许多 C 文件看到
把你的宏定义
#define NAME "supreeth"
在像def.h这样的头文件中
然后在您的 C 代码中包含您的def.h ,然后如果您包含def.h,您可以在所有其他 C 文件中使用您的 C 文件中的宏
在您的代码NAME
中不是变量。它是一个预处理器符号,这意味着文本NAME
将在输入中的任何地方替换为 string "supreeth"
。每个文件都会发生这种情况,因此谈论它是“外部的”是没有意义的。
如果在没有 that 的情况下编译特定的 C 文件#define
,则 的任何使用都NAME
将保持原样。
如果你#define NAME "supreeth"
在 abc.c 中,你肯定可以在另一个文件中有一个同名的 extern 变量def.c
,这是就编译器而言。如果您暗示这两者之间存在某种依赖关系,则不会发生这种依赖关系/链接。显然,做这样的事情是令人困惑的,也是一个坏主意。