我可以依赖'sizeof'来确定我使用的是32位操作系统还是64位操作系统

bar*_*nos 1 c c++ virtual-memory 32bit-64bit

假设我不确定如何检查我正在运行的操作系统.

所以我想确定使用下面的代码:

#include <limits.h>
...
size_t os_size = sizeof(void*) * CHAR_BIT;
Run Code Online (Sandbox Code Playgroud)

我可以100%依赖它,还是有任何需要注意的警告?

例如:

我是否有可能安装32位操作系统的编译器并在64位操作系统上正常工作?

谢谢

Sev*_*eux 8

没有.

正如您已经提到的,您可以在64位操作系统上使用32位编译器.在Linux上有一个更有趣的案例叫做X32 ABI,其中应用程序是32位特殊情况,但支持本机64位寄存器,本机64位数学等等.