C语言结构体的1字节对齐(代码实现)

linux上运行的结果!!!不是win

#define BYTE1 attribute((packed, aligned(1)))
//aligned(1),表示1字节对齐,默认是4字字节

#include 

#define BYTE1  __attribute__((packed, aligned(1)))  //aligned(1):1字节对齐

typedef struct   //默认4字节对齐
{
    int num1;
    char ch1;
    int num2;
    char ch2;
}Str_four;

typedef struct
{
    int num1;
    char ch1;
    int num2;
    char ch2;
}BYTE1 Str_one;

int main()
{
    printf("str_four: %ld\n", sizeof(Str_four));
    printf("str_one: %ld\n", sizeof(Str_one));
}

结果如下:
str_four: 16
str_one: 10

你可能感兴趣的:(linux_C语言)