zoukankan      html  css  js  c++  java
  • 结构体成员内存对齐

    #include<stdio.h>
    struct A
    {
        int A;
    };
    
    int main()
    {
        struct A a;
        printf("%d
    ",sizeof(a));
        return 0;    
    }

    运行结果:4

    #include<stdio.h>
    struct A
    {
        int a;
        int b;
    };
    
    int main()
    {
        struct A a;
        printf("%d
    ",sizeof(a));
        return 0;    
    }

    运行结果:8

    #include<stdio.h>
    struct A
    {
        int a;
        char b;
    };
    
    int main()
    {
        struct A a;
        printf("%d
    ",sizeof(a));
        return 0;    
    }

    运行结果:8

    分析:以结构体中最大的数据类型的字节为标准,随后的基础数据类型都会跟随它对齐

    #include<stdio.h>
    struct A
    {
        char a;    
        short b;    
        int c;
        short d;
        char e;
    };
    
    int main()
    {
        struct A a;
        printf("%d
    ",sizeof(a));
        return 0;    
    }

    运行结果:12

    a

    b

    c

    d

    e

    13

    14

    15

    16

    32位计算机(主流):

    long       8

    int          4

    short      2

    char       1

    #include<stdio.h>
    struct A
    {
        char a;    
        short b;    
        char c;
        int d;
        long long  e;
    };
    
    int main()
    {
        struct A a;
        printf("%d
    ",sizeof(a));
        return 0;    
    }

    运行结果:24

    a

    b

    c

    d

    e

  • 相关阅读:
    Flutter-常用插件庫
    Flutter-發送短信驗證碼
    Flutter-Radio單選框
    Flater-Provide狀態管理
    android sdk安装
    Android Studio的安装
    Flutter SDK安装(windows)
    Flutter-dialog彈出框
    python中的迭代器与生成器
    python闭包与装饰器
  • 原文地址:https://www.cnblogs.com/wanghao-boke/p/11172019.html
Copyright © 2011-2022 走看看