2012-04-24 35 views
1

是否有任何C/C++ 編譯器(不是預處理器)曾經被視爲在命令行中定義的重要宏?這個問題包括用戶定義的宏和衆所周知的(編譯器或系統特定的)宏。在已經預處理的C/C++中,「-D」(define)宏是否與編譯器有關?

(我不要求有關編譯器開關,而是隻有一個開關對定義的宏在命令行)。

例如,如果你已經「預先處理「myfile.cppmyfile.i,然後想要編譯該myfile.imyfile.obj/myfile.o,它是否有意義有-Dmacro定義一些」宏「在命令行的myfile.i ==>myfile.obj/myfile.o

同樣,是否鏈接器 EVER被視爲重要的宏(在任何地方定義)?

+1

對這個問題沒有答案是正確的,因爲我可以寫一個編譯器違背了答案而無效。請優化您的範圍。 – orlp 2012-04-24 00:30:29

+1

@nightcracker:讓我們慷慨,並假設問題是詢問現有的實現,而不是理論上的未來實現。 – 2012-04-24 00:36:25

+0

我們是否應該假設OP正在談論ISO在說什麼? – EJP 2012-04-24 06:30:05

回答

3

是的。

某些調試格式將記錄預處理器定義,以便可以從調試器中訪問它們。

(但我不知道有接頭,其接受預處理器的標誌。)