关于C语言中的结构
我对结构感到困惑。你们能给我解释一下这个结构是什么意思吗关于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; 上面的结构在函数中声明,这是什么意思 keyChange\u t*msgPtr?结构
typedef struct
{
uint8 event;
uint8 status;
}osal_event_hdr_t;
然后,在另一个结构中再次定义上述结构,如下所示:
typedef struct
{
osal_event_hdr_t hdr;
uint8 state;
uint8 keys;
}keyChange_t;
上面的结构在函数中声明,这是什么意思
keyChange\u t*msgPtr
?结构是否指向msgPtr
,但msgPtr
是uint8
。你们能给我解释一下吗?谢谢。第一个结构是一个名为osal\u event\u hdr\t的容器类型,它包含两个变量,我假设这两个变量的类型是uint8\t。您可以通过以下方式访问其内容:
osal_event_hdr_t foo;
foo.event = 1;
foo.status = 2;
第二个结构与第一个结构非常相似,但它实际上包含第一个结构中的一个!因此,要从该结构访问第一个结构,如下所示:
keyChange_t bar;
bar.hdr.status = 3;
我试过。。。哈哈你的问题是什么?你的问题是什么结构?如果是的话,只要读一读就行了。或者,您可能想知道
*
语法是什么。这些是。你不明白第一个结构的哪一部分?它看起来像一个非常基本的未标记结构类型。uint8类型不是标准类型(例如,它不是标准C的一部分,也不是标准POSIX),但这不应该是太大的问题。类似地,第二种结构有什么复杂之处?是什么让你觉得msgPtr
是uint8
?那么我很抱歉。这个问题根本没有被很好地研究过,也不适合这个网站。嗨,乔纳森,我错认为msgPtr了。它不是uint8
。在第二个结构中我有一个问题,osal\u event\u hdr\t hdr
,第二个结构中定义的第一个结构是什么?一个struct
可以有其他struct
成员,如uint8 state
,hdr
也是一个类型为struct osal\u event\u hdr\u t
的变量,我想大致是这样的,谢谢你的回复=)