我正在看一个C结构,其中包含一些我以前从未见过的语法.结构如下所示:
- typedef struct structExample {
- int member1;
- int member2
- } * structNAME;
我知道通常具有以下结构:
- typedef struct structExample {
- int member1;
- int member2
- } structNAME;
我可以通过以下方式引用第二个结构定义的成员:
- structNAME* tempStruct = malloc(sizeof(structNAME));
- // (intitialize members)
- tempstruct->member1;
第一个结构定义中的额外*是什么,以及如何引用第一个结构定义的成员?
解决方法
这意味着定义的类型是指针类型.这是声明类型的等效方法:
- struct structExample {
- int member1;
- int member2;
- };
- typedef struct structExample * structNAME;
你会像这样使用它:
- structNAME mystruct = malloc (sizeof (struct structExample));
- mystruct->member1 = 42;