你能在另一个文件中使用#define变量吗?

时间:2013-04-29 13:33:09

标签: c global extern

例如 abc.c 包含变量

#define NAME "supreeth"

可以在 def.c

中外部变量NAME

3 个答案:

答案 0 :(得分:15)

在您的代码NAME中不是变量。它是一个预处理器符号,这意味着文本NAME将在输入中的任何位置替换为字符串"supreeth"。这种情况发生在每个文件中,因此将它称为“外部”是没有意义的。

如果编译的特定C文件没有#define,则NAME的任何使用都将保持原样。

答案 1 :(得分:13)

您不能将extern与宏一起使用。但如果你想要你的宏看到许多C文件

把你的宏定义

#define NAME "supreeth"

def.h

等标题文件中

然后在您的C代码中包含 def.h ,然后如果包含 def.h <,则可以在所有其他C文件的C文件中使用您的宏/ p>

答案 2 :(得分:2)

如果你在abc.c中有#define NAME "supreeth",你肯定可以在另一个文件def.c中使用相同名称的外部变量,这就编译器而言。如果您暗示这两者之间存在某种依赖关系,则不会发生依赖关系/链接。 做这样的事情显然是令人困惑和坏主意。