簡體   English   中英

#define源代碼中的xxx或-D xxx來編譯?

[英]#define xxx in source or -D xxx to compiler?

以下是等效項:

#define xxx

在源和

gcc -D xxx

第一個是否僅適用於出現它的源文件,而不適用於沒有出現的其他源文件,以便在那些其他文件中未定義xxx?

第二個是否暗示在所有源代碼文件中都定義了xxx?

謝謝!

第一個僅適用於定義了它的源文件,但是可以放置在頭文件中,該頭文件可以包含在多個文件中,從而使該定義適用於更多文件。 第二個定義在使用-D xxx編譯的所有文件中均處於活動狀態。

第一個是否僅適用於出現它的源文件,而不適用於沒有出現的其他源文件,以便在那些其他文件中未定義xxx?

對。

第二個是否暗示在所有源代碼文件中都定義了xxx?

兩種方法的作用相同,但兩種情況下的定義范圍不同。

-D選項在makefile中被廣泛使用,因為在這里您不需要修改源文件。 但是,如果該定義僅針對任何文件,則在適當的文件中定義它是一個不錯的選擇。

我認為編譯器選項對您希望在編譯時禁用或啟用功能很有幫助,因此您無需編輯任何文件。

是的,您在所有方面都是正確的。 如果在頭文件中執行#define,它將直接或間接應用於包含該頭文件的所有文件。 這用於定義常量或宏。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM