美文网首页
c语言的struct的内存对齐

c语言的struct的内存对齐

作者: 尘埃里的玄 | 来源:发表于2019-10-23 14:18 被阅读0次

本博客以32位也就是四字节为例子:

#include <iostream>

struct D{

    int ff;

    char a;

    char c;

    char d;

};

struct A

{

    char a;

    int ff;

    char c;

    char d;

};

struct B

{

    char a;

    char c;

    int ff;

    char d;

};struct C

{

    char a;

    char c;

    char d;

    int ff;

};

union E{

    char a;

    char c;

    char d;

    int ff;

};

int main() {

  char ch='\t';

  char dddd=54;

  short bcv;

  printf("%d",sizeof(D));

  printf("\n%d",sizeof(ch));

  printf("\n%d",sizeof(short));

    printf("\n%d",sizeof(A));

    printf("\n%d",sizeof(B));

    printf("\n%d",sizeof(C));

    printf("\n%d",sizeof(E));

  return 0;

}

可以看到结构体的数据变量放的位置不同会导致结构体所占用的内存大小都不一样,他以四字节为一组,若加起来超过四字节就会重新开辟一个字即四个字节

union联合体则会采用最长的数据类型来共用内存。

相关文章

  • c语言的struct的内存对齐

    本博客以32位也就是四字节为例子: #include struct D{ int ff; char a; ...

  • sizeof与字节对齐

    参考 【面试题】sizeof引发的血案编译器与字节对齐c 语言字节对齐问题详解C/C++内存对齐内存存取粒度C和C...

  • C# struct 中的内存对齐

    c#中char占两个字节,ushort占2个字节,int占4个字节 struct下字段占用按8的倍数补齐

  • 内存对齐

    在C语言柔性数组一文中,提到了内存对齐,于是想写篇文章总结总结内存对齐。 内存对齐 为什么需要内存对齐 计算机系统...

  • C面试-内存对齐

    参考: 【嵌入式时代】C语言面试题详解(第7节),不知道“内存对齐”的程序员是不合格的 转载自:C语言的内存对齐 ...

  • 数据结构 -- 共用体Union

    在数据结构 -- 结构体Struct一文中详细介绍了结构体的定义以及内存对齐。在C语言中,还有另外一种和结构体非常...

  • C语言 内存对齐

    引言 先看一个例子: 请问Test_T占几个字节?如果你的回复是 1 + 4 = 5,那就错了。我们看下程序运行的...

  • 解析C语言结构体对齐(内存对齐问题)

    解析C语言结构体对齐(内存对齐问题) C语言结构体对齐也是老生常谈的话题了。基本上是面试题的必考题。内容虽然很基础...

  • iOS底层探索-calloc

    一、calloc底层探索 1.1、内存对齐原则 a:数据成员对齐规则:结构(struct)(或联合(union))...

  • iOS 内存对齐

    一、结构体内存对齐 1.1 结构体内存对齐三大原则 数据成员对⻬规则结构体(struct)或联合体(union)的...

网友评论

      本文标题:c语言的struct的内存对齐

      本文链接:https://www.haomeiwen.com/subject/smckvctx.html