C语言位字段应用
来源:互联网 发布:淘宝返利的网站有哪些 编辑:程序博客网 时间:2024/05/01 23:50
位字段可以直接定义和访问一个字中的位字段,而不需要通过按位逻辑运算符。在一个机器字节中包含多个对象(如按网络协议传输消息、硬件设备接口数据传输等)时,这种方法可以简单地提取或压缩对应数据。例如。
#include "stdio.h"
#include "stdlib.h"
#include "type_traits"
using namespace std;
int main()
{
//struct flags包括6个字段,第三、五两个字段为无用字段,故没有命名
struct {
unsigned int is_keyword :1;
unsigned int is_extend :2;
unsigned int :3;
unsigned int is_static :2;
unsigned int :2;//下一字节
unsigned int is_next :2;
} flags[5];
//定义指针,为其赋值
unsigned int *chr = (unsigned int*) &flags;
//数据压缩
*chr = 0x03f1;
//数据提取
printf("【0】flags.is_keyword=%i, flags.is_extend=%i, flags.is_static=%i, flags.is_next=%i\n",
flags[0].is_keyword,flags[0].is_extend, flags[0].is_static,flags[0].is_next);
*(chr+1) = 0x04f2;
printf("【1】flags.is_keyword=%i, flags.is_extend=%i, flags.is_static=%i, flags.is_next=%i\n",
flags[1].is_keyword,flags[1].is_extend, flags[1].is_static,flags[1].is_next);
*(chr+2) = 0x08f7;
printf("【2】flags.is_keyword=%i, flags.is_extend=%i, flags.is_static=%i, flags.is_next=%i\n",
flags[2].is_keyword,flags[2].is_extend, flags[2].is_static,flags[2].is_next);
*(chr+3) = 0x0aa7;
printf("【3】flags.is_keyword=%i, flags.is_extend=%i, flags.is_static=%i, flags.is_next=%i\n",
flags[3].is_keyword,flags[3].is_extend, flags[3].is_static,flags[3].is_next);
*(chr+4) = 0xfa37;
printf("【4】flags.is_keyword=%i, flags.is_extend=%i, flags.is_static=%i, flags.is_next=%i\n",
flags[4].is_keyword,flags[4].is_extend, flags[4].is_static,flags[4].is_next);
getchar();
return 0;
}
以上方法在实际工程应用中进行数据打包发送及消息解析,硬件端口数据发送及解析时,应用较为方便。
- C语言位字段应用
- C语言位字段
- C语言位字段
- c语言位字段
- C语言中的位字段
- 位字段-C语言
- c语言&位字段(位域)
- c 语言结构中的位字段
- C语言篇之位字段
- C语言 位字段的使用
- C语言——位字段
- B00002 C语言位字段实例
- 【每日一C之十六】C语言位字段
- 应用位运算 c语言实现比较:
- C001-C语言-位运算应用集合
- C语言-位运算的应用
- 探讨C语言中位字段的内存分配
- C语言 - 结构体(struct)的位字段(:) 详解
- mybatis实战教程(mybatis in action)之一:开发环境搭建
- Android判断服务器是否开启
- POJ 1001 大数
- JSONObject has no read method. SKIPPED
- Python 实现 淘宝秒杀 聚划算 自动提醒 源码
- C语言位字段应用
- leetcode Two Sum
- webservice锦集
- E0F
- [LeetCode] Search Insert Position
- 磁盘raid
- 用OpenSceneGraph实现的NeHe OpenGL教程 - 第二十七课
- 画图解释SQL联合语句
- c 语言语法