当前位置: 首页 > wzjs >正文

鲜花网站建设规划书app制作费用多少钱

鲜花网站建设规划书,app制作费用多少钱,我要表白网站,时尚网站欣赏1-1 位域 C 语言中位域的作用,这是一个典型的位域应用案例 typedef union {struct {volatile U8 b_dot_BAT1 :1; //电池框volatile U8 b_dot_BAT2 :1; //从左到右 第一格......}_bit; }SEG_DSP_FLAG7; 位域的基本概念:结构体可以…

1-1 位域


C 语言中位域的作用,这是一个典型的位域应用案例

typedef union {struct {volatile    U8  b_dot_BAT1     :1;    //电池框volatile    U8  b_dot_BAT2     :1;    //从左到右 第一格......}_bit;
}SEG_DSP_FLAG7;

位域的基本概念:结构体可以指定成员占用的位数,这就是位域。使用冒号加数字,比如:1,表示这个成员只占1个二进制位。这样做的好处是可以节省内存,尤其是在处理硬件寄存器或者需要紧凑存储数据的时候。代码中 :1 是 **C语言结构体位域(Bit Field)**的语法,用于指定结构体成员占用的内存位数。


1-2 作用


位域允许你精确控制结构体成员占用的内存位数(而非默认的字节单位),常用于:


        节省内存空间:将多个布尔值或小范围整数值压缩存储在一个字节(或整型变量)中。

        硬件映射:直接操作寄存器或硬件设备的特定位(如状态标志位)。

        代码可读性:用名称直接访问特定位,代替手动位掩码和位移操作。


1-3 分析


typedef union {struct {volatile U8 b_dot_BAT1    :1; // 电池框volatile U8 b_dot_BAT2    :1; // 从左到右 第一格volatile U8 b_dot_BAT3    :1; // 从左到右 第二格// ... 其他成员类似} _bit;
} SEG_DSP_FLAG7;

位域语法:每个成员后的 :1 表示它占用 1个二进制位(即只能存储 0 1)。

结构体总大小:所有成员位数之和不超过底层类型(此处是 U8,即1字节 = 8位)。本例中共有8个1位成员,正好占满1字节。

联合体 (Union)SEG_DSP_FLAG7 是一个联合体,目的是让 _bit 结构体和可能的其他成员(如一个完整的 U8 字节)共享同一内存空间,方便通过位域或字节整体操作。


1-4 案例


typedef union {struct {volatile U8 b_dot_BAT1    :1; // 电池框volatile U8 b_dot_BAT2    :1; // 从左到右 第一格volatile U8 b_dot_BAT3    :1; // 从左到右 第二格// ... 其他成员类似} _bit;
} SEG_DSP_FLAG7;

位域语法:每个成员后的 :1 表示它占用 1个二进制位(即只能存储 0 1)。

结构体总大小:所有成员位数之和不超过底层类型(此处是 U8,即1字节 = 8位)。本例中共有8个1位成员,正好占满1字节。

联合体 (Union)SEG_DSP_FLAG7 是一个联合体,目的是让 _bit 结构体和可能的其他成员(如一个完整的 U8 字节)共享同一内存空间,方便通过位域或字节整体操作。


1-5 案例


假设我们要控制一个LED状态寄存器,其中:

第0位:LED开关(1开/0关)

第1位:颜色模式(1红色/0绿色)

第2-4位:亮度等级(0-7)


位域实现部分代码

typedef union {struct {volatile uint8_t led_on    :1;  // 位0:开关volatile uint8_t color     :1;  // 位1:颜色模式volatile uint8_t brightness:3;  // 位2-4:亮度(3位可表示0-7)volatile uint8_t reserved  :3;  // 位5-7:保留位} bits;volatile uint8_t byte; // 整个字节的视图
} LED_Register;// 使用示例
LED_register reg;
reg.bits.led_on = 1;       // 打开LED
reg.bits.color = 1;        // 设为红色
reg.bits.brightness = 5;   // 亮度级别5

1-6 注意事项


位域的顺序

1:位的分配顺序(从左到右还是从右到左)依赖编译器和平台。例如,某些编译器可能将 b_dot_BAT1 放在最低位(LSB),而另一些放在高位(MSB)。

2:可通过调试或文档验证实际布局。

3:位域的具体实现可能因编译器而异,在跨平台代码中需谨慎使用。

4:此处 volatile 表示变量可能被外部硬件或中断修改,禁止编译器优化访问(确保每次读写直接操作内存)


手动操作:

如果不使用位域,等效的手动位操作如下

在表达式 led_register |= (1 << 0); 中,(1 << 0) 实际上表示数字1左移0位。根据位移操作的定义,任何数左移0位都是其本身。也就是说,1 << 0 的结果还是1。这个操作不会改变数值1的值。

明确性:即使左移0位不改变值,这种写法可以增加代码的可读性和明确性,表明你有意将第0位设置为1。这对于理解代码的人来说是一个清晰的信号,即该位是有意被设定的。

一致性:如果在代码中存在多个类似的操作(例如设置不同的位),使用统一的位移操作格式可以使代码更加一致和易于维护。比如,若你需要设置第1位,则可以使用 (1 << 1),对于第2位则使用 (1 << 2) 等等。这样做的好处是显而易见的,特别是当你需要快速定位到某一位进行操作时。

uint8_t led_register = 0;// 设置LED开关为1
led_register |= (1 << 0); // 设置颜色模式为红色
led_register |= (1 << 1); // 设置亮度为5(需清除旧值后设置)
led_register &= ~(0x7 << 2);  // 清除位2-4
led_register |= (5 << 2);     // 设置亮度5

相比之下,位域代码更简洁直观 


......


文章转载自:

http://Ci79mGjB.ghxsn.cn
http://ipvV1WES.ghxsn.cn
http://wwEFyU7H.ghxsn.cn
http://c0538LPq.ghxsn.cn
http://LvlXQrgO.ghxsn.cn
http://3XMSnd6k.ghxsn.cn
http://1cCGQf5u.ghxsn.cn
http://Pk7Jsk6s.ghxsn.cn
http://EyP2xSfX.ghxsn.cn
http://C84XKakR.ghxsn.cn
http://bmPP3d06.ghxsn.cn
http://fczGc2Zo.ghxsn.cn
http://wDdoXRej.ghxsn.cn
http://2GtNNidj.ghxsn.cn
http://1QfhgwyN.ghxsn.cn
http://R0l4heMN.ghxsn.cn
http://CesdyI8F.ghxsn.cn
http://rFnQvBRX.ghxsn.cn
http://yNcEFaHI.ghxsn.cn
http://3EEL5K9A.ghxsn.cn
http://j1HWf5SQ.ghxsn.cn
http://mVtQ7vco.ghxsn.cn
http://vWbXISG7.ghxsn.cn
http://Nm4zndRx.ghxsn.cn
http://h4dCyupU.ghxsn.cn
http://04gXqI2R.ghxsn.cn
http://iz21RjIc.ghxsn.cn
http://kqMIB2rZ.ghxsn.cn
http://1QltJBLR.ghxsn.cn
http://ZlEc0vMp.ghxsn.cn
http://www.dtcms.com/wzjs/739511.html

相关文章:

  • 重庆川九建设有限责任公司官方网站石家庄营销网站建设
  • 免费空间asp网站源码学习网站 现状
  • 网站开发一般多少钱福州发布最新通告
  • 铜仁网站建设哪家专业优书网下载
  • 济南网站建设 泉诺网站网络拓扑图
  • 招聘网站开发方案doc163企业邮箱服务器
  • 11号在线 网站开发六安市网站制作公司
  • 射洪网站建设北京网站设计研究与开发公司
  • 网站制作工具推荐做网站对于不同的分辨率
  • 太原网站建设与维护wordpress 数据库 破解版
  • 家乡网站建设策划书网站建设 考核指标
  • 单位网站的建设建设一个视频教学网站
  • 哪些网站可以做画赚钱wordpress mycred汉化
  • 网站运营推广这么做ip代理免费
  • 金科网站建设网站开发人员培训
  • 孝感网站建设软件网站建设服务协议 百度
  • vue响应式网站开发有哪些官方网站做的比较好
  • 怎么免费注册自己的网站wordpress短信登陆
  • 男女做的那些事情的网站vue开发视频网站
  • 外贸建站 厦门沈阳网页模板建站
  • 卓伊科技网站建设flash网站免费源码带后台
  • 做电商网站价格湿地公园网站建设
  • 电子商务网站建设方案推荐做最好的网站新新
  • 网站的建设方面爱站权重查询
  • 柳州网站建设国际贸易
  • 优秀网站网页设计分析摄影做网站
  • 西平县住房城乡建设局网站网站运营需要 做哪些工作
  • 外贸网站开发建设一个网站的具体流程
  • 北仑网站建设培训学校雷山网站建设
  • 鲁山网站建设兼职简述网站的建设方案