__attribute__((packed))详解

attribute ((packed)) 的作用就是告诉编译器取消结构在编译过程中的优化对齐,按照实际占用字节数进行对齐,是GCC特有的语法。这个功能是跟操作系统没关系,跟编译器有关。

typedef struct {
    double a;
    double b;
} __attribute__((packed)) dnum; //不对齐,结构体长度就是各个变量长度之和

struct student
{
    char name[7];
    uint32_t id;
    char subject[5];
} __attribute__ ((aligned(4)));  //基于4字节进行对齐
qrcode

创建时间:2020-04-13 14:38:23

最后修改:2020-06-13 10:40:33