sizeof 32bit 64bit

原创 2012年03月29日 23:52:34
	printf("short:%d\n",sizeof(short)); 
	printf("double:%d\n",sizeof(double)); 
	printf("long double:%d\n",sizeof(long double)); 
	printf("long:%d\n",sizeof(long)); 
	printf("int:%d\n",sizeof(int)); 
	printf("float:%d\n",sizeof(float)); 
	printf("char:%d\n",sizeof(char)); 





只要是指针,包括char *,sizeof为4。

对数组名求sizeof时,不把它当指针看,sizeof为该数组实际分配的字节数,char[]类型数组也遵循这条规律,数组元素个数可通过初始化表隐形指定。

--------------------------------------------------------------------------------------------------------------------------------------------

以上讨论针对32bit cpu。 

32bit cpu 8字节的类型只有double、 long double和long long。

对于64bit cpu 指针和带一个long的类型变为原来的两倍,其他不变(包括double)。

运行结果如下:(分别用蓝色和红色标记了两者的差异)

——————————————————————————

机器平台:X86_64 处理器

操作系统:Red Hat 4.1.2-14

编译器: gcc version 4.1.2 20070626

Size of char is:                                   1

Size of unsigned char is:                     1

Size of signed char is:                  1

Size of int is:                                    4

Size of short is:                                2

Size of long is:                                  8

Size of long int is:                             8

Size of signed int is:                           4

Size of unsigned int is:                       4

Size of unsigned long int is:                8

Size of long long int is:                       8

Size of unsigned long long is:              8

Size of float is:                    4

Size of double is:                 8

Size of long double is:          16

Size of (void *) is:           8

Size of (char *) is:           8

Size of (int *) is:             8

Size of (long *) is:           8

Size of (long long *) is:   8

Size of (float *) is:          8

Size of (double *) is:              8

——————————————————————————

机器平台: X86_32 处理器

操作系统:  Windows XP SP2

编译器:    VS2005自带的C++编译器

Size of char is:                            1

Size of unsigned char is:              1

Size of signed char is:           1

Size of int is:                       4

Size of short is:                    2

Size of long is:                     4

Size of long int is:                4

Size of signed int is:             4

Size of unsigned int is:          4

Size of unsigned long int is:         4

Size of long long int is:                8

Size of unsigned long long is:       8

Size of float is:                    4

Size of double is:                 8

Size of long double is:          8

Size of (void *) is:          4    

Size of (char *) is:          4

Size of (int *) is:             4

Size of (long *) is:          4

Size of (long long *) is:   4

Size of (float *) is:          4

Size of (double *) is:       4

---------------------------------------------------------------

(1)空结构体或类,sizeof大小为1

(2)c++中静态成员存放在全局数据区,sizeof计算栈中分配大小,故不包含在内

(3)char数组作为sizeof参数时不退化,作为strlen参数时退化为char *

(4)数组作为函数形参时,退化为指针,故其sizeof返回指针长度



C/C++中sizeof()的用法——32位和64位下的sizeof()

机器平台:X86_64 处理器 操作系统:Red Hat 4.1.2-14 编译器: gcc version 4.1.2 20070626     Size of char is:   ...
  • xunfeng13
  • xunfeng13
  • 2016年03月30日 09:59
  • 7370

32bit 和 64bit系统的区别

转载地址:http://www.cnblogs.com/ggjucheng/archive/2011/12/15/2288919.html 前言 32位和64位系统在计算机领域中常常提及,但是仍然...
  • liuxingrui4p
  • liuxingrui4p
  • 2015年03月24日 22:03
  • 2035

64bit系统下兼容oracle32bit问题

※环境 OS:windows server 2008R2 64bit. 开发工具: VS2010 (NetFv4.0)+ C# + NHibernate + OracleClient Oracl...
  • jtlyr
  • jtlyr
  • 2013年01月08日 18:31
  • 870

在ubuntu 64bit中运行32bit程序

因为工作需要 要使用mips编译器 ,下载了压缩包:gcc-4.3-ls232.tar.gz 并且解压。 解压完毕后 运行可执行程序  /gcc-4.3-ls232/bin$ ./mipsel-li...
  • XscKernel
  • XscKernel
  • 2013年06月24日 15:22
  • 2419

解决64bit下无法运行32bit软件

32bit的应用程序时无法直接在64bit的系统上运行的,但是为了保证32bit的应用程序能在64bit的系统上运行,微软提供了一个WOW64(Windows-on-Windows 64-bit )的...
  • zhouhoujia
  • zhouhoujia
  • 2012年02月29日 19:46
  • 1694

python 32bit? 64bit?

网上的一些方法直接输入python,会显示一些信息,有的有位数信息,但是我的是anaconda虚拟环境下的,并没有后显示位数信息,输入Python后输入如下代码:import sys, platfor...
  • m0_37052320
  • m0_37052320
  • 2018年01月02日 14:46
  • 49

MySQL-python Windows 64bit and 32bit distributions

I have built two 64bit and two 32bit Windows distributions of the MySQLdb module for Python 2.6.x fo...
  • sding
  • sding
  • 2009年12月15日 16:10
  • 1766

Ubuntu 12.04 64bit兼容32bit GCC 交叉编译环境搭建

Ubuntu 12.04 64bit兼容32bit GCC 交叉编译环境搭建
  • hehu8
  • hehu8
  • 2016年04月18日 12:32
  • 436

note pad ++64 bit不能使用32bit插件。

X64PC 兼容模式使用 notepad++32bit 正常使用 compare, hex editor 等插件
  • m0_38049850
  • m0_38049850
  • 2017年08月29日 07:58
  • 199

32bit or 64bit

Solaris系统: # isalist –v  sparcv9+vis sparcv9 sparcv8plus+vis sparcv8plus sparcv8 sparcv8-fsmuld...
  • chinaren0001
  • chinaren0001
  • 2013年01月28日 23:25
  • 293
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:sizeof 32bit 64bit
举报原因:
原因补充:

(最多只允许输入30个字)