32位系统-数据类型占内存字节数

来源:互联网 发布:js中怎样定义一个数组 编辑:程序博客网 时间:2024/05/16 14:22

环境:OS: Windows XP SP3 32bit

         CPU:AMD Athlon(tm)

         Visual 2005

一:整形

      int                             4字节

      long int                     4字节

      short int                   2字节

      unsigned int             4字节

      unsigned long int     4字节

      unsigned short int    2字节

二:字符型

      char                          1字节

      unsigned char           1字节

三:浮点型

      float                              4字节

      double                          8字节

      long double                  8字节

      unsigned long double   8字节

      unsigned double           4字节

四:字符串型

      string                           32字节

五:指针类型

      所有类型的指针都是 4字节

六:函数

      除了void型。其他的函数占有的字节数等于函数的返回类型所占有的字节数。与函数体内部无关。

如:float  fun(){ return 2;}

      sizeof(fun()) = 8--------这里是4

      

七:结构体、类

      内部各数据类型占用之和,注意边界对齐

如: struct fun1
 {
  int a;   //4
  double b;  //8
  char c;     //1
 };

sizeof(fun1)=24

truct fun2
 {
  int a;   //4
  char c;     //1
 };

sizeof(fun2)=8

特殊:

    struct fun3
    {
      string a;   //32
      char b,c,d;     //3

    }b;

sizeof(fun3)=36

八:联合体union

      取其中占有字节数最大的数据类型所占有的字节数。




转自:http://blog.csdn.net/cyhleo/article/details/6820610

0 0