是否有来自 C prog 的信息来确定操作系统当前是在 32 位还是 64 位模式下运行。我正在使用如下所示的简单程序
int main(void){
switch(sizeof(void*)){
case 4: printf("32\n");
break;
case 8: printf("64\n");
break;
}
}
这是正确的做法吗? 这段代码是否适用于所有场景,例如,如果硬件是 64 位而操作系统是 32 位,它会返回什么?我没有机器在差异配置中对此进行测试。
感谢您的建议。
最佳答案
一般来说,32 位可执行文件无法判断它是在 64 位操作系统下运行还是在 32 位操作系统下运行(某些操作系统可能有办法判断,但我不知道没有搜索过),64 位可执行文件不会在 32 位操作系统下运行(如果你不考虑 32 位操作系统模拟运行 64 位操作系统的处理器的可能性......)
sizeof() 结果主要是一个编译时间常量,它不会根据运行的操作系统版本返回不同的东西。
你真正想知道什么?
关于c - 如何查找机器是32位还是64位,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2401756/