有没有一种方法可以在不使用 sizeOf 运算符的情况下知道 CPU 是 32 位还是 64 位?
可以为此编写任何其他代码吗?
最佳答案
在这个问题中How to determine whether a given Linux is 32 bit or 64 bit?
要检查系统是32位还是64位内核,可以调用
system("getconf LONG_BIT")
并检查它的返回。如果它显示 64,则它是 64 位内核,如果它是 32,则它是 32 位内核。
要检查CPU是否支持64位,可以在文件/proc/cpuinfo中检查它是否有“lm”(长模式)标志
system("grep flags /proc/cpuinfo | grep -c lm")
如果返回为 1,则 lm 标志存在(64 位),如果返回 0,则不存在(32 位)
但这只是Linux。其他选项位于开头链接的问题中。例如,有些包括检查 limits.h
。
关于C代码不使用sizeof确定CPU的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35919234/