我遇到了麻煩。 MASM宏似乎不像C宏一樣。 C有一個預處理程序,它將文本處理爲一系列令牌,您可以在任何地方進行宏調用。看起來並非如此。我無法找到適當的文檔,但你不能在指令中調用宏,對吧?除了它是另一個宏調用中的語法的一部分?或者當它在宏觀def裏面?這是唯一的例外嗎?規格/文檔在哪裏?調用MASM中的宏
OK,我想要做的是這樣的:
external macro fnames:VARARG
extern stdin:qword,
for fname, <fnames>
fname&_ptr: qword,
endm
endm
external puts, fgets, printf, srand, rand
我也得到: 語法錯誤:
這似乎已經是解釋extern僞指令並找到宏裏面不允許=>語法錯誤。
我可以做什麼?如果你用逗號結束每一行,你可以將一條指令分成幾行,對嗎?但是,如果它不解釋宏觀調用,那就沒有幫助。
我發現,我可以這樣做:
external macro fnames:VARARG
extern stdin:qword
for fname, <fnames>
extern fname&_ptr: qword
endm
endm
external puts, fgets, printf, srand, rand
但該指令乘以並不總是一個選項。採取proc指令f.ex.我無法多次使用proc頭文件來處理同一個proc文件。
是否有智能解決這個困境?是否可以使用MASM宏來產生單行輸出?我不知道如何。趕緊去救援,所有你在那裏書呆子! :) Cheerioh
我發現的一個很好的文檔是[來自Randall Hyde](http://www.oopweb.com/Assembly/Documents/ArtOfAssembly/Volume/toc.html)。有關MASM指令,請參閱第8章。 – zx485
您是否閱讀過文檔? – fuz
投票反對的人只是可怕的。 – pyetti