区分 C 中的 32 位和 64 位环境
确定 C 编译的位宽度(32 与 64)对于某些操作。虽然常见方法使用宏来比较最大值,但它会引起对可能失败的担忧。
建议方法:
不要仅依赖宏,而是考虑使用交叉-利用特定于编译器的定义的平台方法。定义自定义变量(例如 ENVIRONMENT64 和 ENVIRONMENT32)并根据编译器平台设置它们。以下是示例代码片段:
// Check Windows #if _WIN32 || _WIN64 #if _WIN64 #define ENVIRONMENT64 #else #define ENVIRONMENT32 #endif #endif // Check GCC #if __GNUC__ #if __x86_64__ || __ppc64__ #define ENVIRONMENT64 #else #define ENVIRONMENT32 #endif #endif // Check based on custom variables #ifdef ENVIRONMENT64 DoMy64BitOperation(); #else DoMy32BitOperation(); #endif
替代解决方案:
或者,您可以从编译器命令行显式设置这些变量:
-DENVIRONMENT64=1
以上是如何可靠地确定我的 C 环境是 32 位还是 64 位?的详细内容。更多信息请关注PHP中文网其他相关文章!