2
是否有編譯器開關我沒有看到這會讓我忽略彙編程序函數中的彙編程序關鍵字?忽略彙編程序函數的彙編程序關鍵字
我是怎樣做到現在,使用例如從FPC文檔:
function geteipasebx : pointer;assembler;
asm
movl (%esp),%ebx
ret
end;
如何,我想做到這一點:
function geteipasebx : pointer;
asm
movl (%esp),%ebx
ret
end;
可以這樣做?
編輯:
編譯源文件PSUB.PAS線170:
{ do we have an assembler block without the po_assembler?
we should allow this for Delphi compatibility (PFV) }
if (token=_ASM) and (m_delphi in current_settings.modeswitches) then
include(current_procinfo.procdef.procoptions,po_assembler);
{ Handle assembler block different }
if (po_assembler in current_procinfo.procdef.procoptions) then ...
我相信自由帕斯卡的源代碼,這部分意味着這隻能在{$ MODE DELPHI}來完成。
哦,真有意思,謝謝!有沒有辦法做到這一點,但在{$ MODE FPC}?我嘗試了一堆{$ MODESWITCH}選項,但沒有找到一個能夠在FPC模式中省略此關鍵字而非DELPHI模式的選項。 – Marladu
我不認爲DELPHI模式只是一組編譯器開關:**彙編器**屬性可能類似於** specialize **關鍵字,沒有開關,它是方言。但我可能是錯的。 –
我會等一兩天,以防有人在接受你的答案之前弄清楚這一點。我已經能夠使用各種編譯器開關將{$ MODE DELPHI}的所有功能添加到{$ MODE FPC}中,但這完全沒有必要,但這會讓編碼更易讀。 – Marladu