c - 关于C中的结构

标签 c

我对结构感到困惑。你们能帮我解释一下这个结构的含义吗?

typedef struct
{
  uint8 event;
  uint8 status; 
}osal_event_hdr_t;

然后,在另一个结构中再次定义上面的结构,如下所示:

typedef struct
{
  osal_event_hdr_t hdr;
  uint8 state;
  uint8 keys;
}keyChange_t;

而上面的结构在函数中声明,this是什么意思 keyChange_t *msgPtr?是指向 msgPtr 的结构,但 msgPtruint8。你们能给我解释一下吗?谢谢。

最佳答案

第一个结构是一个名为 osal_event_hdr_t 的容器类型,其中包含两个变量,我认为这两个变量的类型为 uint8_t。您可以像这样访问它们的内容:

osal_event_hdr_t foo;
foo.event = 1;
foo.status = 2;

第二个结构很像第一个,但它实际上包含第一个结构之一!因此,要访问该结构的第一个结构,就像:

keyChange_t bar;
bar.hdr.status = 3;

我试过了...哈哈

关于c - 关于C中的结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41054211/

相关文章:

c - 优化简单的模具操作,将变量保存在寄存器中

c - 图中的可达性 - C

c - 为什么 read() 返回不正确的字节数?

c - 有什么简单的方法可以在c语言中将int类型转换为enum类型?

c - 如何使用 CLion 在 MacOS Big Sur 上查看内存泄漏?

c - 写 (1<<24 - 1) 而不是 FFFFFF 的好处?

c - malloc() 在 free() 之后重用内存位置,导致碎片化(?)

c - 编写锯齿形矩阵的程序

c - 带有 for 循环的数组会出现段错误

c - 这种行为是否符合 clang 标准?