我知道__asm
塊可以訪問在這些塊之外聲明的變量,但我想要做的是找到一種方法來訪問塊外部__asm
塊中聲明的變量。我所有關於C和C++的知識都表明,這應該是不可能的,因爲C和C++在{}
塊中的範圍都是可以的。有沒有辦法做到這一點,或者我是否需要在__asm
塊之外聲明這些變量?我可以從__asm塊外部訪問__asm變量嗎?
PS:我無法從我的任何搜索中找到任何與此問題相關的答案。
我知道__asm
塊可以訪問在這些塊之外聲明的變量,但我想要做的是找到一種方法來訪問塊外部__asm
塊中聲明的變量。我所有關於C和C++的知識都表明,這應該是不可能的,因爲C和C++在{}
塊中的範圍都是可以的。有沒有辦法做到這一點,或者我是否需要在__asm
塊之外聲明這些變量?我可以從__asm塊外部訪問__asm變量嗎?
PS:我無法從我的任何搜索中找到任何與此問題相關的答案。
答案似乎是否
微軟具體
雖然__asm塊可以引用C或C++的數據類型和目的,它不能與MASM指令或運營商定義的數據對象。具體而言,您不能使用定義指令DB,DW,DD,DQ,DT和DF或運算符DUP或THIS。 MASM結構和記錄也不可用。內聯彙編程序不接受指令STRUC,RECORD,WIDTH或MASK。
END微軟具體
這就是我所害怕的。但是,謝謝。 –
我想我們假設你正在使用微軟的Visual C++? –
是的,但不是其他編譯器可用的內聯程序集? –
它在其他編譯器中可用(但不是必需的),但並不總是以與MSVC++兼容的方式提供。例如,在GCC中,彙編語言模板與MSVC++的模板非常不同。 –