struct 位域
2015-11-24 10:12
211 查看
//直接上code吧
位域的作用就是像操作变量一样来操作bit位,常用于嵌入式编程中,来达到较少存储空间使用的目的。
#include <stdio.h>#include <string.h>int main(void){struct bs{unsigned char a: 1;unsigned char b: 3;unsigned char c: 4;unsigned char d: 1;unsigned char e: 2;unsigned char f: 2;}bit, *pbit;printf("sizeof = %d %d\n", sizeof(bit), sizeof(*pbit));bit.a = 1;bit.b = 7;bit.c = 15;printf("%d,%d,%d\n", bit.a, bit.b, bit.c);pbit = &bit;pbit->a = 0;pbit->b &= 3;pbit->c |= 1;printf("%d,%d,%d\n", pbit->a, pbit->b, pbit->c);memset(pbit, 0, sizeof(bit));pbit->a = 1;pbit->b = 0x02;pbit->c = 0x06;pbit->d = 1;pbit->e = 1;pbit->f = 2;printf("0x%04x\n", *(unsigned short int *)pbit);return 0;}<span style="color:#ff0000;"></span>输出结果:a: 1b: 010c: 0110d: 1e: 01f: 10存储位置大致为 fedcba,排在前面的变量放在低位,不晓得是否跟cpu的大小端是否有关系。内存中存放的值变成 1 00110110 0101也就是0x1365看到这项技术时,想当然的可以用在h264头写入的,里面有好多位操作,看来不行啊。
相关文章推荐
- 微信支付--工具类--处理二维码
- 微信支付--工具类--处理二维码
- 微信支付--工具类--处理二维码
- 微信支付--工具类--处理二维码
- 微信支付--工具类--处理二维码
- 微信支付--工具类--处理二维码
- 微信支付--工具类--处理二维码
- 微信支付--工具类--处理二维码
- 微信支付--工具类--处理二维码
- 微信支付--工具类--处理二维码
- 微信支付--工具类--处理二维码
- 微信支付--工具类--处理二维码
- 微信支付--工具类--处理二维码
- 微信支付--工具类--处理二维码
- 微信支付--工具类--处理二维码
- 微信支付--工具类--处理二维码
- 微信支付--工具类--处理二维码
- qos功能介绍
- 微信支付--工具类--处理二维码
- V7新控件