返回信息流rt
谢谢了先!
这是一条镜像帖。来源:北邮人论坛 / cpp / #38455同步于 2010/4/22
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖
[求助]如何获得CPU字长,是32bit还是64bit的?
suxpp
2010/4/22镜像同步15 回复
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
int cpu_bits(void *dummy1, void *dummy2)
{
long offset = (long)&dummy2 - (long)&dummy1;
int ret = 0;
if (8 == offset)
ret = 64;
else if (4 == offset)
ret = 32;
else if (2 == offset)
ret = 16;
else if (1 == offset)
ret = 8;
else
ret = -1;
return ret;
}
int main()
{
printf("%d\n", cpu_bits(NULL, NULL));
return 0;
}
【 在 l00l 的大作中提到: 】
: sizeof(char*)
这个跟编译器配置 有关
不妨想下这种情况 假设cpu是64位 但编译器的配置却是32位 则你这样的结果就错了
所以应该像上面我这样写才是最好的 因为应用的是运行时的信息来判断cpu位数
【 在 jmpesp 的大作中提到: 】
: [color=#00008B]int cpu_bits(void *dummy1, void *dummy2)
: {
: long offset = (long)&dummy2 - (long)&dummy1;
: ...................
虽然内容不明白,但是看得出来是很良好的编码风格,膜拜