某些人会考虑用long类型的长度来作为判断的标准,这样不是一个好的答案。我认为比较好的答案是利用虚拟地址的位数:
1 int main() 2 { 3 4 #ifdef __x86_64__ 5 assert(sizeof(char *) == 8); 6 #endif 7 return 0; 8 }
然后见到别人提了一个这样的问题:如果是64位的机器装了32位的系统,你怎么判断呢?
A:
1. 直接读取/proc/cpuinfo
2. 更底层点的做法:使用汇编指令cpuid
某些人会考虑用long类型的长度来作为判断的标准,这样不是一个好的答案。我认为比较好的答案是利用虚拟地址的位数:
1 int main() 2 { 3 4 #ifdef __x86_64__ 5 assert(sizeof(char *) == 8); 6 #endif 7 return 0; 8 }
然后见到别人提了一个这样的问题:如果是64位的机器装了32位的系统,你怎么判断呢?
A:
1. 直接读取/proc/cpuinfo
2. 更底层点的做法:使用汇编指令cpuid