• 关于地址对齐的小插曲


    今天在面试时,一个问题引起我和老四的分歧:

    一个结构体A,包含一个int然后一个char,sizeof(A)是多少?

    一个结构体B,包含一个char然后一个int,sizeof(B)是多少?

    老四认为是A是5Bytes,B是8Bytes,我认为是A、B都是8Bytes,不过后来我自己开始怀疑自己,感觉如果char排在结构的最后可能确实在计算所占内存时是不占用一整个内存单元的,所以结果可能确实是5,但是经过程序证明,发现还是我当初的想法是正确的:A、B都是8字节。

    /*
        结构体A,一个int一个char,sizeof结构体是多少? 经过验证,答案是8
        结构体B,一个char一个int,sizeof结构体是多少?答案是8
    */
    #include "stdio.h"
    
    void main()
    {
        struct A{
            int a;
            char b;
        };
        struct B{
            char b;
            int a;
        };
    
        printf("一个int一个char的结构体大小是=%d
    ",sizeof(A));
        printf("一个int一个char又一个char的结构体大小是=%d
    ",sizeof(B));
    }
  • 相关阅读:
    xtrabackup
    spark对机器的要求
    hbase的总结
    TO B公司高效能的组织建设实践
    如何给客户展示实力
    什么样的IT队伍是好队伍
    程序员如何使用OKR
    云原生
    Flink 的18个小知识点
    apt 常用命令
  • 原文地址:https://www.cnblogs.com/wuqi1003/p/3362420.html
Copyright © 2020-2023  润新知