0
我有一個使用「.global」彙編語言代碼的「c」程序。我的編譯器不允許這個,我需要忽略一樣,我試過如下:「.global」的宏定義
#define .global //global
但是,這給出了一個編譯器錯誤。有沒有其他的選擇,我可以使用。編譯錯誤是:
「預期標識符」
我有一個使用「.global」彙編語言代碼的「c」程序。我的編譯器不允許這個,我需要忽略一樣,我試過如下:「.global」的宏定義
#define .global //global
但是,這給出了一個編譯器錯誤。有沒有其他的選擇,我可以使用。編譯錯誤是:
「預期標識符」
你幾乎肯定會最終編寫自己的腳本預處理;如果你的源文件被合理控制,它應該不會太難。如果你不使用字符串文字或評論.global
結構,例如,這將是足夠的做一些事情,如:
sed 's/.global [_[:alpha:]][_[:alnum:]]*;//g'
(也許更多的注重細節大約空格)。
您無法使用宏製作評論。 (您也不能定義名稱以.
開頭的宏,儘管我認爲可能有編譯器將其作爲擴展接受。)
註釋在翻譯過程的階段3中被替換爲空白。預處理器指令直到第4階段才被檢查,此時所有評論都消失了。
所以有
#define COMMENT //comment
#define COMMENT
標準參考之間沒有差異:§ 5.1.1.2/1:
源文件被分解成預處理令牌7)和空白字符序列(包括註釋)。源文件不應以部分預處理令牌或部分註釋結束。每個評論都被一個空格字符替代。…
執行預處理指令,展開宏調用,並執行一元運算符表達式_Pragma
…
你使用什麼編譯器?你能向我們展示一個這種用法的例子嗎? – RedX
字面文字'.global'出現在C源文件中? – Potatoswatter
「.global _vsf_getps;」這是如何使用它,我使用一個內部編譯器,它不支持這種構造,所以在編譯時需要忽略這一點,而不改變代碼。 –