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

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

标签:
C C++ 嵌入式

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

课程信息

课程内容概述

1. 简介

本节介绍了位域:有些信息在存储时,并不需要占用一个完整的字节,而只需占几个或一个二进制位。例如在存放一个开关量时,只有 0 和 1 两种状态,用 1 位二进位即可。为了节省存储空间,并使处理简便,C 语言又提供了一种数据结构,称为"位域"或"位段"。

2. 枚举

2.1 使用方法

struct 位域结构名
{
    类型说明符1 位域名1:位域长度1; //最低位;
    类型说明符2 位域名2:位域长度2; //次低位;
    类型说明符3 位域名3:位域长度3;
    ……
    类型说明符N 位域名N:位域长度M; //最高位;其中,N∈[0,1,2…..],M∈[0,8];
};
注:
类型说明符 常用int,unsigned int ,signed int,unsigned char,char这几种类型。
位域长度   位域中的数量位,要小于或等于类型的宽度

例如:
struct Bit
{
int a:8;
int b:2;
int c:6;
};

struct Bit data;
说明位域变量data,共占用2个字节;其中,位域a占8bit,位域b占2bit,位域c占6bit


2.2 代码示例

#include <stdio.h>
#include <string.h>

struct
{
  unsigned int age;
  unsigned int sex;
} student1;

struct
{
  unsigned int  age:1;
  unsigned int  sex:1;
} student2;

 int main( )
{
   printf( "sizeof(student1) : %d\n", sizeof(student1));
   printf( "sizeof(student2) : %d\n", sizeof(student2));
 
   return 0;
}

运行结果

sizeof(student1) : 8
sizeof(student2) : 4

学习心得

C语言中的位域,在节省空间时用处很大。

课程截图

1. 代码示例

图片描述

2. 代码示例

图片描述

点击查看更多内容
TA 点赞

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

评论

作者其他优质文章

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

100积分直接送

付费专栏免费学

大额优惠券免费领

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

举报

0/150
提交
取消