为了账号安全,请及时绑定邮箱和手机立即绑定

【备战春招】第2天 嵌入式工程师学习笔记

标签:
C C++ 嵌入式

【备战春招】第2天 嵌入式工程师学习笔记

课程信息

课程内容概述

1. 简介

本节介绍了联合体和结构体的定义形式类似,但是它是所有的成员共享同一块内存空间。共用最大的一块内存。

2. 联合体

2.1 使用方法

union  共用体名
{
        类型  成员1;
        类型  成员2;
        
};
例如:
union stu
{
                char a;
                int b;
                short c;
};
union stu s1;
printf("len : %d\n",sizeof(s1));  ===> 4

2.2 代码示例

#include <stdio.h>

typedef struct
{
    unsigned char Red;
    unsigned char Green;
    unsigned char Blue;
}RGB_t;

typedef union
{
    RGB_t  rgb;
    unsigned int value;
}PIX_t;

int main()
{
    //1. 定义一个PIX_t类型的变量,然后定义三原色分别为0X11、0X22、0X33,
    PIX_t color;
    RGB_t rgb;
    color.rgb.Red = 0X11;
    color.rgb.Green = 0X22;
    color.rgb.Blue = 0X33;
    //2. 不做任何处理,直接打印value。
    //3.观察结果
    printf("%#x\n", color.value);
}

运行结果

0x332211

学习心得

C语言中的共用体和结构体的异同点
<1>相同点
都是构造类型,含有多个成员,访问成员的规则一样

<2>不同点
结构体的每个成员都拥有独立空间
共用体的多个成员共用同一块内存空间,分配的空间最大成员所占用的内存。

课程截图

1. 原理讲解

图片描述

2. 代码证明

图片描述

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消