社区
C语言
帖子详情
关于结构体定义的愚蠢问题
wendy_welcom
2007-09-21 03:31:39
typedef struct CTRL {
UCHAR exst_cd :2;
UCHAR ackn_cd :1;
UCHAR state_cd :3;
USINT slot_no;
USINT send_evt;
}CTRL0
" UCHAR exst_cd :2; " 以前没见过结构体里面的成员带冒号和数值的, 能解释一下这是什么么,看不懂了。
谢谢
...全文
202
6
打赏
收藏
关于结构体定义的愚蠢问题
typedef struct CTRL { UCHAR exst_cd :2; UCHAR ackn_cd :1; UCHAR state_cd :3; USINT slot_no; USINT send_evt; }CTRL0 " UCHAR exst_cd :2; " 以前没见过结构体里面的成员带冒号和数值的, 能解释一下这是什么么,看不懂了。 谢谢
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
wendy_welcom
2007-09-24
打赏
举报
回复
谢谢 Treazy(活着)
pbdwadr
2007-09-22
打赏
举报
回复
从来没见过,更没用过。。。
Treazy
2007-09-22
打赏
举报
回复
typedef struct CTRL {
UCHAR exst_cd :2;
UCHAR ackn_cd :1;
UCHAR state_cd :3;
USINT slot_no;
USINT send_evt;
}CTRL0 ;
这是位段的定义方式,具体可以参考任何一本C语言的书,都有比较详细的讲解。
简单的说,UCHAR代表 结构成员变量的类型,而exst_cd,ackn_cd等是此成员在这个类型中所占的位数,上面的类型是uchar,是1个字节8位,而exst_cd占最低2位,ackn_cd占1位,state_cd 占3位等等。
位段的定义还有一些比较细节的地方,如果楼主想了解的话可以看一下书!
wendy_welcom
2007-09-21
打赏
举报
回复
系统分配空间时,不是按uchar类型开辟一个8bit的空间存exst_ce么?
awperpvip
2007-09-21
打赏
举报
回复
UCHAR exst_cd :2;
exst_cd 占2bit
xugang_2001
2007-09-21
打赏
举报
回复
意思是:声明exst_cd在内存中只占2个bit(本来是8个bit)
matlab simulink自定义结构体变量并在函数模块中应用
能“徒手”写matlab脚本,却是simulink小白一枚。前段时间“硬着头皮”给一个simulink模型添加了一个函数模块,函数的输出是4个结构体变量,因此涉及到在simulink中自定义结构体类型的变量,以及显示输出的结构体变量。 完成这一任务的过程还是费了一些劲的,在翻阅各大网站查找
问题
的解决方法的过程中,也发现很多帖子并没有把
问题
解决得明明白白,当时就立下flag:当我完成这个任务之后,...
C语言定义结构体成员不能为自身的原因
编译器编译时需要确定结构体占用的空间大小,结构体中若有成员变量定义为自身结构体的话编译器无法确定大小,但如果成员变量定义的自身结构体的指针,则可以通过编译,因为指针大小是给定的。首先遇到的场景为 写BFS题的时候,常常想在定义结构体的同时,在成员变量中定义一个一个成员为自身结构体数组的结构体,例如。我们使用一个简化的但错误类型一致的结构体,将结构体数组换成定义了一个类型为自身结构体变量,编译结果同样是错误无法通过的。但是当我们将这个变量定义成指针的时候,编译是可以通过的,这是因为指针的大小是固定的。
如何初始化结构体中的指针结构体_【翻译】初始化结构体模式
原文标题: Init Struct Pattern 原文链接: https://xaeroxe.github.io/init-struct-pattern/Introduction让我们来讨论一下Rust中复杂结构体的初始化。在这方面已经有了一些比较流行的做法,其中包括常见的pub fn new()和生成器模式(builder pattern)。在这篇文章中,我会对比这些方式,并提出一种新的模式...
愚蠢
的
问题
关于struct和typedef struct
struct和typedef struct 分三块来讲述: 1 首先://注意在C和C++里不同 在C中定义一个结构体类型要用typedef: typedef struct Student { int a; }Stu; 于是在声明变量的时候就可:Stu stu1;(如果没有typedef就必须用struct Student s
Linux内核中container_of宏定义讲解
在Linux内核中经常能在list_head双向链表和socket等等操作中看到使用container_of宏定义来取到具体的结构体。 当然第一眼看到的时候就会觉得这是啥?这又是啥?这什么东西?为什么通过这个可以拿到结构体的基地址?
问题
不大,笔者会用此文章+画图的方法来仔细讲解container_of宏定义。 那么,用一个列子+画图来理解把。 在struct-A结构体中,存在几个变量,包括struct-B。当我们已知struct-B的绝对地址时,此时需要得到struct-A的绝对地址,..
C语言
70,037
社区成员
243,247
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章