结构体和类的字节对齐

原创 2016年08月30日 14:17:43
   编译器为了优化运行效率,对于结构体和类的成员访问会进行字节填充,即字节对齐。在这之前,我们需要知道如下基本信息:

    1 C++中,类和结构体并没有本质的区别。只是默认的访问权限不同。
    2 类和结构体的大小都是数据成员的大小,而不包括累成员函数的大小。
    3 空的类或者空的结构体的大小都为1,而不是0。目前是编译器能够对其进行寻址定位。

     字节对齐通常是已结构体中占用空间最大的一个成员进行对齐的。
     typedef struct
    {
         char c; //占4个字节
         int i; //4个字节
     }TEST,*PTEST;
     32位机上,该结构体的大小为8。

    typedef struct
   {
           char c;  //4
           int i;   //4 
           long long k; //8
     }TEST,*PTEST;
     32位机上,该结构体的大小为16字节。

    typedef struct
    {
           char c;  //8
           long long k; //8 
           int i; //8
      }TEST,*PTEST;
     32位机上,该结构体的大小为24字节。

     typedef struct
    {
           char c;  //占用4个字节,以int对齐
           int m; //占用4个字节,加上c的4个字节和k的8个字节对齐
           long long k; //8 
           int i; //8 已k的8个字节对齐
      }TEST,*PTEST;
     32位机上,该结构体的大小为24字节。
版权声明:本文为博主原创文章,未经博主允许不得转载。 举报

相关文章推荐

结构体字节对齐

来源:http://www.cnblogs.com/longlybits/articles/2385343.html 结构体字节对齐              &#...

结构体字节对齐

结构体字节对齐       在用sizeof运算符求算某结构体所占空间时,并不是简单地将结构体中所有元素各自占的空间相加,这里涉及到内存字节对齐的问题。从理论上讲,对于任何变量的访问都可以从任何地址...

我是如何成为一名python大咖的?

人生苦短,都说必须python,那么我分享下我是如何从小白成为Python资深开发者的吧。2014年我大学刚毕业..

结构体字节对齐

本文系转载海子的博客,本人觉得写得非常好,重点讲的是结构体字节对齐,自己给重点地方加了标记: 在用sizeof运算符求算某结构体所占空间时,并不是简单地将结构体中所有元素各自占的空间相加,这里涉...

结构体字节对齐

在用sizeof运算符求算某结构体所占空间时,并不是简单地将结构体中所有元素各自占的空间相加,这里涉及到内存字节对齐的问题。从理论上讲,对于任何变量的访问都可以从任何地址开始访问,但是事实上不是如此,...

结构体字节对齐

在嵌入式开发时,常常需要注意结构体的字节对齐。当然了,不是说在PC上开发程序时不需要关注。只是两者关注的程度不一样。同时,不同的操作系统或者操作需求,字节对齐的原则也不一样。下面针对在PC上Micro...

结构体字节对齐

在用sizeof运算符求算某结构体所占空间时,并不是简单地将结构体中所有元素各自占的空间相加,这里涉及到内存字节对齐的问题。从理论上讲,对于任何 变量的访问都可以从任何地址开始访问,但是事实上不是如此...

结构体字节对齐

结构体偏移量 在定义结构体类型后,则结构体中的成员内存布局就定下了。 #include typedef struct Test { int a; int b; in...

结构体字节对齐

结构体(struct)的sizeof值,并不是简单的将其中各元素所占字节相加,而是要考虑到存储空间的字节对齐问题。先看下面定义的两个结构体. struct {   char a;   shor...

结构体字节对齐

原文1网址:点击打开链接  在用sizeof运算符求算某结构体所占空间时,并不是简单地将结构体中所有元素各自占的空间相加,这里涉及到内存字节对齐的问题。从理论上讲,对于任何 变量的访问都可以...

结构体字节对齐

  结构体字节对齐       在用sizeof运算符求算某结构体所占空间时,并不是简单地将结构体中所有元素各自占的空间相加,这里涉及到内存字节对齐的问题。从理论上讲,对于任何变量的访问都可以...
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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