2010-11-02 61 views
0

我有這樣的代碼在C:快速的x86彙編問題

int main(){ char a[10]; _asm{ mov DWORD PTR[a],eax;} 

這個效果很好,可是爲什麼我實際需要的

DWORD PTR 

當DWORD大小已經被使用EAX說? IAnd的目的地,我不需要任何大小,我有指針,對不對?謝謝。

回答

2

這是因爲你的代碼是錯誤的。 a變量是一個數組,而不是一個指針。聲明它是char *,並且你不需要覆蓋。當然代碼是無稽之談。

+0

那麼,我相信a是一個指向第一個數組元素的指針。至少你可以將它傳遞給以char *作爲參數的函數.... – 2010-11-02 21:59:10

+0

它可以被轉換爲一個指針。它在C語言中是自動的。大會是,想一想,更嚴格。它是否真的有意義將char [10]轉換爲int32_t?它需要演員。是的,dword ptr就是那個演員。 – 2010-11-02 22:29:31

+0

Weel,如果它不是一個指針,比什麼是?謝謝。 – 2010-11-07 18:06:46