一、结构体样式
struct tag {
member-list
member-list
member-list
…
} variable-list ;
这里 variable-list 不是必选项,也可以后面在声明。
但是另一种类型必须有:
typedef struct tag {
member-list
member-list
member-list
…
} variable-list ;
这里通过typedef进行声明后,variable-list 就成了必选项
二、结构体可以引用使用
即结构体可以调用结构体实现功能(后面直接实例来介绍吧)
三、具体实例
```c
#include<stdio.h>
#include<string.h>
#include<math.h>
/*
只用于创建类型
*/
typedef struct BaseMSG{
int a;
int b;
char c;
}BM;//
struct SingleMSG
{
BM bm;
int a;
int b;
char c[10];
};
int main()
{
struct SingleMSG lm;
lm.a=4;
lm.b=5;
strcpy(lm.c,"L");
printf("%d\n%s\n",lm.a,lm.c);
struct SingleMSG *lm2;
lm2->a=8;
lm2->b=9;
strcpy(lm2->c,"JM");
char st[]="jm";
strncpy(lm2->c,st,strlen(st));
lm2->bm.a=10;
printf("%d\n%d\n%s\n%d\n",lm2->a,lm2->b,lm2->c,lm2->bm.a);
return 0;
}
这里我写了一个比较简单的示例,输出的结果如下:
4
L
8
9
jm
10
比较简单,但是使用了两种方案调用结构体功能,直接实例化和指针方式。
个人推荐指针方式。
需要注意的是,结构体最后都是用分号结束,具体使用时不要弄错了。
目前这一块个人研究的还比较简单,待有新内容再更新啦。