服务器之家

服务器之家 > 正文

C/C++语言中结构体的内存分配小例子

时间:2021-01-06 11:38     来源/作者:C语言教程网

当未用 #pragma 指令指定编译器的对齐位数时,结构体按最长宽度的数据成员的宽度对齐;当使用了 #pragma 指令指定编译器的对齐位数时,结构体按最长宽度的数据成员的宽度和 #pragma 指令指定的位数中的较小值对齐。

#pragma 指令格式如下所示:
#pragma pack(4)     // 或者 #pragma pack(push, 4)

举例如下:(机器字长为 32 位)
    struct
    {
        char a;
    }test;
    printf("%d/n", sizeof test);

打印出来的结果为 1;

    struct
    {
        char a;
        short b;
        char c;
    }test;
    printf("%d/n", sizeof test);

打印出来的结果为 6;

    struct
    {
        char a;
        int b;
        char c;
    }test;
    printf("%d/n", sizeof test);

打印出来的结果为 12;

    struct
    {
        char a;
        double b;
        char c;
    }test;
    printf("%d/n", sizeof test);

打印出来的结果为 24;

    #pragma pack(4)
    struct
    {
        char a;
        double b;
        char c;
    }test;
    printf("%d/n", sizeof test);

打印出来的结果为 16;

相关文章

热门资讯

2020微信伤感网名听哭了 让对方看到心疼的伤感网名大全
2020微信伤感网名听哭了 让对方看到心疼的伤感网名大全 2019-12-26
Intellij idea2020永久破解,亲测可用!!!
Intellij idea2020永久破解,亲测可用!!! 2020-07-29
背刺什么意思 网络词语背刺是什么梗
背刺什么意思 网络词语背刺是什么梗 2020-05-22
歪歪漫画vip账号共享2020_yy漫画免费账号密码共享
歪歪漫画vip账号共享2020_yy漫画免费账号密码共享 2020-04-07
苹果12mini价格表官网报价 iPhone12mini全版本价格汇总
苹果12mini价格表官网报价 iPhone12mini全版本价格汇总 2020-11-13
返回顶部