C/C++教程

C/C++结构体和共用体字节对齐

本文主要是介绍C/C++结构体和共用体字节对齐,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

共用体union以其中最大的字节长度为准对齐,字节大小一定是最大字节长度的倍数,共用体内成员公用一片内存空间

union A{
     int  a[5];
     char b;
     double c;  
}

结果是24

int的字节长度为4,5个int就是20,double的长度是8,但20不是8的倍数,所以补上4,该共用体的字节长度为24.

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

结构体字节对齐也是以其中最大的字节长度为准对齐

struct{
    char name[10];
    int a;
    char sex;
    
}s;

结果是20

10个char类型一共占10个字节,最后一排剩下两个字节,无法填入int类型,所以另起一行,目前是16字节,在填入一个char一字节,字节对齐后为16+4=20字节

这篇关于C/C++结构体和共用体字节对齐的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!