美文网首页
2019-12-09 C 结构体和共用体

2019-12-09 C 结构体和共用体

作者: GoodWen | 来源:发表于2020-01-19 14:45 被阅读0次

1,结构体

类似于java中的 java bean,可以将一些变量封装成一个对象;同样的,在C里面,可以将一些其他的变量封装成一个
结构体。结构体和共用体所 表示的含义是一致的。
用 struct 关键字申明一个结构体 类似于 class 申请一个对象
或者 typedef 进行一个别名


QQ截图20200119112948.png

内存对齐
定义:对齐跟数据在内存中的位置有关。如果一个变量的内存地址正好正好位于他长度的整数倍,也就被称为自然对齐。假如在32位的CPU下,假设一个整数变量的地址为:0X00000004,那他是自然对齐的。


QQ截图20200119112948.png
结构体大小
定义:当结构体需要的内存过大,使用动态内存申请。结构体占用字节数和结构体内字段有关,指针占用内存数就是4/8字节,因此传指针比传值效率更高。
QQ截图20200119112948.png
结构体存储原则
(1)结构体变量中成员的偏移量必须是成员大小的整数倍(0被认为是任何数的整数倍)。

(2)结构体大小必须是所有成员大小的整数倍,也即所有成员大小的公倍数。


QQ截图20200119112948.png

2,共用体

共用体和结构体类似,都是表示一个数据类型的集合,只不过结构体需要的内存开销会更大一点,
共用体:顾名思义,他是共用一个身体,是一种特殊的数据类型,允许您在相同的内存位置存储不同的数据类型,
您可以定义一个带有多成员的共用体,但是任何时候只能有一个成员带有值,共用体提供了一种使用相同内存位置
的有效方式。
通过 union 关键字定义


QQ截图20200119112948.png

共用体的申明方式


QQ截图20200119112948.png
共用体的大小
QQ截图20200119112948.png

相关文章

  • 2019-12-09 C 结构体和共用体

    1,结构体 类似于java中的 java bean,可以将一些变量封装成一个对象;同样的,在C里面,可以将一些其他...

  • C语言和OC的结构体(struct)

    Struct(结构体) 1.结构体定义 2.结构体变量 3.结构体数组 4.C语言结构体指针 5.C语言共用体 6...

  • NDK开发—结构体、共用体与C++基础(三)

    目录 结构体、共用体与C++基础11、结构体字节对齐2、共用体3、C++ 输出函数符号兼容引用字符串C字符串字符串...

  • 三、C语言基础

    A、struct 结构体 结构体:里面所有的成员,默认都是public B、pragma C、union 共用体/...

  • C结构体、共用体、枚举

    一、结构体 (1)类型声明 注意,这一步操作只是声明了一个类型struct student,不占据栈空间或堆空间。...

  • 结构体 联合体 位域

    union 共用体/联合体 结构体和共用体的区别在于:结构体的各个成员会占用不同的内存,互相之间没有影响;而共用体...

  • 结构体、共用体与C++基础

    结构体、共用体与C++基础1 [TOC] 1、结构体 结构体是C编程中一种用户自定义的数据类型,类似于Java的J...

  • 面经---依依短租

    1. 结构体、共用体、类 C++中结构体与类的区别: 结构体中的成员访问权限不声明时候默认是 public 的,而...

  • C语言学习之十——共用体、枚举类型和typedef

    共用体1.1共用体的概念 :使几个不同的变量共占同一段内存的结构,称为“共用体”类型的结构。1.2 定义共用体类型...

  • 9.结构体与共用体

    1.共用体 共用体的概念 : 使几个不同的变量共占同一段内存的结构称为 “共用体”类型的结构。 定义共用体类型变量...

网友评论

      本文标题:2019-12-09 C 结构体和共用体

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