在Visual C++中,DWORD只是一個無符號長整數,與機器,平臺和SDK相關。但是,由於DWORD是雙字(即2 * 16),在64位體系結構上還是32位的DWORD?32位和64位代碼的DWORD有多大?
回答
實際上,在32位計算機上,一個單詞是32位的,但DWORD類型是來自16位舊版的遺留物。
爲了更方便地將程序移植到較新的系統,Microsoft已決定所有舊類型不會更改大小。
你可以在這裏找到的官方名單: http://msdn.microsoft.com/en-us/library/aa383751(VS.85).aspx
所有這一切與過渡改變從32位到64位與_Ptr結束依賴於平臺的類型(DWORD_PTR將在32位32位位Windows和64位Windows上的64位)。
它被定義爲:
typedef unsigned long DWORD;
然而,根據MSDN:
在32位的平臺,long是 代名詞INT。
因此,DWORD是32位操作系統上的32位。有一個單獨的64bit DWORD的定義:
typdef unsigned _int64 DWORD64;
希望有所幫助。
:)字現代處理器是32位或64位。這只是內存指針的長度(這是ALU的容量)。
但是歷史上x86「word」是16位(而不是32位)。因此歷史上以x86爲目標的Microsoft庫將DWORD定義爲無符號長整型,即「機器指針大小」。
這就是所有的孩子。以供參考,請參閱Wikipedia。
(1)這是一個錯誤的維基百科頁面的鏈接。 (2)這個問題不是關於計算機體系結構的話,而是關於微軟的'DWORD'類型。 – 2013-07-16 17:42:23
呼叫長,dword32,dword64 ......任何你想要的,但 一個字節爲8位 一個字是2個字節 一個DWORD(雙字)爲2個字 一個四字(四字)爲4詞語
在32或64位系統,如LONG或INT別名可以變化,但是一個DWORD仍然是一個雙字
8比特是一個字節。 2個字節是一個字。雙字或DWORD是4個字節或2個字。
- 1. 運行32位和64位java代碼
- 2. 代碼從32位移植到64位
- 3. 將32位代碼編譯爲64位
- 4. 32位或64位?使用C代碼
- 5. 編碼/在32位和64位
- 6. 32位和64位CPU/OS
- 7. C# - 在32位和64位
- 8. 64位debian和32位酒
- 9. 32位和64位性能
- 10. 映射LARGE_INTEGER在兩個32位和64位代碼的size_t
- 11. 如何將32位VBA代碼轉換爲64位VBA代碼
- 12. 確實64位代碼佔用32位代碼更多的存儲空間?
- 13. 如何檢測VC++代碼中的JRE位(32位或64位)
- 14. 在Linux 64位上組合C和彙編(32位代碼)
- 15. 32位和64位代碼可以混合使用嗎?
- 16. 32位本地代碼,JNA和64位JVM
- 17. XOR高32位,低32位,64位數
- 18. 64位的32位除法
- 19. 32位和64位dll的windows服務
- 20. PHP的32位和64位平臺
- 21. 32位和64位的Java類路徑
- 22. Windows 7(64位)上的IIS 7和Ms Access 32位32位
- 23. 什麼是適合32位和64位「32位」的術語
- 24. 瞭解最大JVM堆大小 - 32位和64位
- 25. 在64位平臺上運行的32位彙編代碼
- 26. 處理Snow Leopard 64位上的32位代碼?
- 27. 產生32位Debian系統上的64位代碼
- 28. 移植C編寫的32位源代碼到64位
- 29. Java和Eclipse - 32與64位
- 30. Xcode&64位&32位問題
DWORD不是機器,平臺,也不是SDK相關的。 – 2013-07-16 17:40:08
這是一個挑剔的問題,但從技術上講這個問題適用於C或C++,最好是移除C++標記或添加C標記,但我不確定哪個更好。 – jrh 2017-12-26 21:05:20