如果有条件检查处理器是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'来完成(并且会被优化)。 –
在编译时,禁用部分代码。 –