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

use*_*872 12 c global extern

例如,abc.c包含一个变量

#define NAME "supreeth"
Run Code Online (Sandbox Code Playgroud)

可以NAMEdef.c替换变量吗?

unw*_*ind 15

在你的代码NAME中不是变量.它是一个预处理器符号,这意味着文本NAME将在输入中的任何地方用字符串替换"supreeth".这种情况发生在每个文件中,所以谈论它是"外部"是没有意义的.

如果在没有它的情况下编译特定的C文件#define,则任何使用都NAME将保持原样.


MOH*_*MED 14

你不能使用extern宏.但如果你想要你的宏看到许多C文件

把你的宏定义

#define NAME "supreeth"
Run Code Online (Sandbox Code Playgroud)

在像def.h这样的头文件中

然后在你的C代码中包含你的def.h然后如果你包含def.h你可以在你的C文件中使用你的所有其他C文件中的


Sud*_*hee 4

如果你#define NAME "supreeth"在 abc.c 中,你肯定可以在另一个文件中拥有同名的 extern 变量def.c,这是编译器所关心的。如果您暗示这两者之间存在某种依赖性,则这种依赖性/链接将不会发生。显然,做这样的事情是令人困惑的,也是一个坏主意。