判断操作系统是否是16位

写一段代码来判断操作系统是否是16位,不能使用sizeof()。
系统是win7 64位操作系统,但代码运行结果却显示为16bit,如下图:
图片说明
求解释!

不要用int,请用unsigned int,因为带符号的整型数直接以0取反会得到负数,无符号整型数则不会。

判断指针长度就行了
sizeof(int *)==4 ? "32 bit" : "16 bit"

  • 首先。使用你那个方法不如用这个方法更直接
printf("int is %d byte long\n", sizeof(int));
  • 其次,我觉得这个办法是不对的。Windows里,int的长度和操作系统位数应该没有关系,是和数据总线的宽度有关。
  • 上面那句,在我的本子上执行的结果是4,也就是说int是4个字节(32位)其实我是64位的Win8.1

说实在的,一般情况下写程序判断系统是多少位的不靠谱,因为程序的数据类型以及指针等和编译器有很大关系。

说实在的,一般情况下写程序判断系统是多少位的不靠谱,因为程序的数据类型以及指针等和编译器有很大关系。