[PIC®/AVR®/dsPIC®产品] 在联合体中使用位段表示,节约字节

[复制链接]
1889|2
 楼主| xuanhuanzi 发表于 2024-5-16 23:04 | 显示全部楼层 |阅读模式
  1. #include <stdio.h>
  2. union FrequencyData {
  3.     unsigned int rawData; // 原始数据
  4.     struct {
  5.         unsigned int frequency : 15; // 频率值,占用15位
  6.         unsigned int swFlag : 1;     // SW标志位,占用1位
  7.     };
  8. };

  9. typedef union FrequencyData Frequency;
  10. Frequency dd;


  11. int main()
  12. {
  13.         dd.rawData=0xF001;
  14.    /* 我的第一个 C 程序 */
  15.    printf("Hello, World! \n");
  16.    printf("%d \n",dd.swFlag);
  17.    printf("%d \n",dd.frequency);
  18.    
  19.    return 0;
  20. }


 楼主| xuanhuanzi 发表于 2024-5-16 23:04 | 显示全部楼层

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
北海道没有冬天 发表于 2025-8-30 15:08 | 显示全部楼层
联合体结合位段,可让不同变量共享内存,按位分配空间。如用位段拆分字节为多个标志位,大幅节约存储空间,适合嵌入式等资源受限场景。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

183

主题

2331

帖子

3

粉丝
快速回复 在线客服 返回列表 返回顶部