C位域

编程入门 行业动态 更新时间:2024-10-28 21:23:23

1.应用:

一般用于单片机或是是芯片操作,减少其内存的使用。

2.上代码:

#include <stdio.h>
#include <stdlib.h>
typedef struct{char GPIO1:2;char GPIO2:2;char GPIO3:2;char GPIO4:2;
}GPIO;
int main()
{GPIO test;test.GPIO1 = 1;test.GPIO2 = 0;test.GPIO3 = 0;test.GPIO4 = 1;printf("整个结构体的字节: %d\n",sizeof(test));printf("test.GPIO1 :%d\n",test.GPIO1);printf("test.GPIO2 :%d\n",test.GPIO2);printf("test.GPIO3 :%d\n",test.GPIO3);printf("test.GPIO4 :%d\n",test.GPIO4);printf("test.GPIO1 :%d\n",&test);
}

3.运行结果:

 

4.分析:

(1)该结构体使用了1个字节的内存;如果不使用位域的话,该 结构体应该是使用了4个字节的内存。所以位域可以减少结构体的内存使用,在你变量存储的数据不是很大的情况下。

(2)要注意的是,其不能取到每个变量的地址,因为地址不对其。取地址的单位至少是一个字节的,所以在该例子中,只能取到该结构体的地址 

 

更多推荐

本文发布于:2023-05-20 22:47:23,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/156695.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!