2. 在不使用 sizeof 的情况下,如何判断操作系统是 32 位还是 64 位?

问题:我们知道在 C/C++ 中使用运算符 sizeof 计算指针变量的大小,如果返回值为 4 字节则是 32 位,如果返回 8 字节,则表示 64 位系统。现在要求不使用 sizeof 如何判断操作系统是 32 位还是 64 位。解法:指针变量位宽根据栈指针变量宽度来判断。对指针变量地址相减时,须将其转换为 char* 或无符号长整型(unsigned long),否则相减的结果为 1,表示地址间隔内存放元素的个数。

发表评论