假設我有這樣的代碼:在編譯命令中指定另一個替換的#define×宏值
#include<stdio.h>
#ifndef STR
#define STR "HELLO"
#endif
int main()
{
printf(STR "WORLD \n");
return 0;
}
這基本上轉化爲:如果str沒有定義,那麼把它定義爲「HELLO」, 所以程序的輸出將是
HELLO WORLD
現在,我的問題是:我怎麼能使用gcc編譯時修改這個值STR ? 例如,我想將「HELLO」更改爲「HI」,而不更改源(program.c)文件中的任何內容。
這樣做的gcc語法是什麼?
我已經試過
的gcc -Wall program.c -DSTR = 「HI」 -o程序
但它並沒有產生預期的輸出。
有什麼建議嗎?
謝謝!
嘗試'GCC -Wall program.c -DSTR = \ 「HI \」 -o year' – BLUEPIXY 2014-10-31 09:17:28
@BLUEPIXY,這是一個答案 – 2014-10-31 09:19:10
@BLUEPIXY:那些反斜槓是問題,現在它就像一個魅力!非常感謝! – Alex 2014-10-31 09:19:39