2013-04-29 120 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都將保持原樣。

相關問題