如果有條件檢查處理器是32位還是64位?我正在尋找一些配置檢查,例如#cfg[x86]
或cfg[x64]
。如果體系結構是32位或64位,如何檢查Rust?
回答
the Rust reference中cfg部分的#[cfg(target_pointer_width = "64")]
似乎是一個可能的解決方案。它是基於一個指針的大小(以及isize
和usize
),其應當對應於體系結構。
*應該對應於架構* - 並非總是如此。例如,AVR芯片具有16位指針,但是是8位架構。 – Shepmaster
那麼答案也不是嗎? –
你所問的問題還不夠具體。你爲什麼關心「架構」?如果你關心指針的大小,那是一個問題。如果你關心其他方面,那麼'target_arch'可能是對的。如果你關心整數本地CPU的大小,那麼我知道沒有答案。 – Shepmaster
你應該檢查conditional compilation鏽參考章節:
target_arch = "..."
- 目標CPU架構,如"x86"
,"x86_64"
,"mips"
,"powerpc"
,"powerpc64"
,"arm"
,或"aarch64"
。該值與平臺目標三元組的第一個元素密切相關,儘管它不相同。
- 1. 在後構建腳本如何檢查系統是64位或32位
- 2. 假計算機體系結構點(32位而不是64位)
- 3. 如何確定使用Java的Windows的32位或64位體系結構?
- 4. 結構大小,檢查是64位還是32位
- 5. 如果操作系統是Windows 2003(32位或64位)或Windows 2008(64位),請檢查WiX
- 6. 如何檢查IIS是否處於32位或64位模式
- 7. 如何檢測,如果CPU是32位還是64位
- 8. InnoSetup:檢測如果Java是32位或64位
- 9. 如何檢測Flex中的32位或64位操作系統?
- 10. IOS體系結構64位
- 11. 在Ubuntu 32位編譯爲64位體系結構
- 12. 32位體系結構中的64位操作數的操作?
- 13. 32位/秒64位體系結構 - 虛擬地址空間
- 14. 如何找到如果apk是32位或64位
- 15. 如何將32位NTDLL結構轉換爲64位結構?
- 16. 如何鏈接64位編譯器(體系結構)的32位框架
- 17. 如何在32位體系結構上運行64位應用程序
- 18. 如何檢查我的Perl安裝是32位還是64位?
- 19. 如何檢查安裝的wxPython是32位還是64位?
- 20. 如何檢查WebSphere是32位還是64位?
- 21. 如何檢查安裝的Anaconda是32位還是64位?
- 22. 無論系統是32位還是64位,int都是32位還是64位?
- 23. 檢查VB構建的32/64位數
- 24. 如何檢測VC++代碼中的JRE位(32位或64位)
- 25. 構建gtest的MSVC:32位或64位?
- 26. 如何檢查服務是否在32位或64位模式下運行
- 27. 無論系統是32位還是64位,uint均爲32位?
- 28. C++函數檢查軟件是否在32位或64位系統上運行
- 29. Windows 64位操作系統上的32位或64位Android SDK?
- 30. 如何在32位體系結構中爲64位整數創建數據結構?
你想在編譯檢測到這種(啓用/禁用不同的功能),或者是運行時檢測是否足夠?後者可以通過'if mem :: size_of ::()== 8'來完成(並且會被優化)。 –
在編譯時,禁用部分代碼。 –