[英]Why can't I use the extern keyword for initializing an extern variable?
[英]Can I use extern for macros?
我知道默認情況下,函數在C中被標記為extern
,並且還可以在C中使用extern
變量(如果在其他文件中對其進行了初始化,或者我編寫了extern int foo = 1;
)。 但是我可以對C宏使用extern
,因為它們的行為類似於函數嗎?
除非C99中有根本改變,否則預處理器宏將沒有存儲類。 您不能在沒有同時定義它們的情況下聲明它們。 編譯器甚至沒有像對待其他標識符那樣對待它們-它們是純文本轉換,至少在概念上是發生在編譯器嘗試任何類型的名稱查找之前。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.