0
這兩個約定在x86編譯模式下一起使用?默認情況下,C++成員函數是否使用cdecl + fastcall約定編譯?
而對於64位編譯,沒有cdecl + fastcall的權利?只是AMD 64 ABI調用約定?如果是這樣,如何在64位模式下推遲stdcall和cdecl之間的關係?
這兩個約定在x86編譯模式下一起使用?默認情況下,C++成員函數是否使用cdecl + fastcall約定編譯?
而對於64位編譯,沒有cdecl + fastcall的權利?只是AMD 64 ABI調用約定?如果是這樣,如何在64位模式下推遲stdcall和cdecl之間的關係?
這兩個約定在x86編譯模式下一起使用?
不,你從哪裏得到這個想法?每個調用約定都是不同的,任何給定的函數一次只能使用一個調用約定。不僅如此,而且fastcall
不是標準化的。不同的32位編譯器實現它的方式不同,因此它不能用於便攜式代碼。 32bit中唯一的標準便攜式呼叫約定是cdecl
和stdcall
。
而對於64位編譯,沒有cdecl + fastcall的權利?只是AMD 64 ABI調用約定?
是的。 64bit中只有一個通用調用約定。在代碼中明確使用的32位調用約定被忽略。
如果是這樣,如何推遲64位模式下的stdcall和cdecl之間?
你不知道。因爲它們不存在於al。