继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

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

慕粉152226940
关注TA
已关注
手记 72
粉丝 7
获赞 43

【备战春招】第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. 代码示例

图片描述

打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP