美文网首页
unit和struct

unit和struct

作者: 一川烟草i蓑衣 | 来源:发表于2020-04-02 21:56 被阅读0次

struct student

{

     char mark; //1 bytes

     long num;  //8 bytes

     float score; //4 bytes

};

在Mac上运行sizeof(student)为24,因为有字节对齐

union test

{

     char mark;

     float num;

     long score;

};

在Mac上运行sizeof(test)为8,因为共用体将一个char类型的mark、一个long类型的num变量和一个float类型的score变量存放在同一个地址开始的内存单元中,而char类型和long类型所占的内存字节数是不一样的,但是在union中都是从同一个地址存放的,也就是使用的覆盖技术,这三个变量互相覆盖,而这种使几个不同的变量共占同一段内存的结构,称为“共用体”类型的结构。

因union中的所有成员起始地址都是一样的,所以&a.mark、&a.num和&a.score的值都是一样的

相关文章

  • unit和struct

    struct student { char mark; //1 bytes longnum; //8 by...

  • struct和typedef struct彻底明白了

    参看struct和typedef struct彻底明白了 typedef struct和struct的区别: ty...

  • struct和 typedef struct

    1. C语言中 在C中定义一个结构体类型一般使用typedef 2. C++中 3. 引用和指针 这种情况,p与...

  • Struct和typedef struct

    在C中定义一个结构体类型要用typedef: typedef struct Student { int a; }S...

  • struct和typedef struct

    struct和typedef struct 分三块来讲述:1 首先://注意在C和C++里不同在C中定义一个结构体...

  • struct和typedef struct区别

    typedef是类型定义的意思。typedef struct 是为了使用这个结构体方便。 具体区别在于: 若str...

  • 数据库

    struct & class C++中的struct是对C中的struct的扩充。和class一样,struct有...

  • C++ 中的struct

    C++ 中也有struct, 而这个struct 和C中的struct不同,是功能扩展了的struct,当时的背景...

  • C++知识点(自用)

    关于struct和class c++中的struct可以有成员函数,能继承,能实现多态。。。那struct和cla...

  • 精读TextA.TextB汇总

    TextA:unit4和unit6 TextB:unit1 unit2 unit3 unit4 旅管1班...

网友评论

      本文标题:unit和struct

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