2013-04-29 240 views

回答

1

如果您在abc.c中有#define NAME "supreeth",那么您肯定可以在另一个文件def.c中使用同名的extern变量,这与编译器相关。如果你暗示这两者之间存在某种依赖关系,那么这种依赖关系就不会发生。 很显然,这样做是令人困惑和不好的想法。

8

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

把你的宏定义

#define NAME "supreeth" 

在头文件中像def.h

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

+0

什么是可能的?没有变量,'extern'的概念不适用。 – 2013-04-29 14:45:42

+0

我不是说用extern我可以在头文件中定义他的宏,然后他可以从他的C文件中看到它。可能是我必须更具体,我会更新我的答案 – MOHAMED 2013-04-29 14:47:17

14

在你的代码中NAME不是一个变量。这是一个预处理器符号,这意味着文本NAME将在字符串"supreeth"的输入中随处替换。这发生在每个文件中,所以说它是“外部”是没有意义的。

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

相关问题