看一个例子来了解
Struct_learn.h
#ifndef __STRUCT_LEARN__ //if not define宏定义判断,作用是防止多重定义
#define __STRUCT_LEARN__
#include <stdlib.h>
#include <string.h>
struct a{
int value1;
char value2;
};
typedef struct a a_t;
struct b{
int value1;
char value2;
struct a valuea;
};
typedef struct b b_t;
struct c{
struct a valuea;
struct b *p_b;
};
typedef struct c c_t;
#endif
Struct_learn.c
#include <stdio.h>
#include <stdlib.h>
#include "struct_learn.h"
void output(a_t a){
printf("value1:%d,value2:%c\n", a.value1, a.value2);
}
void output_b(struct b b){
printf("value1:%d value2:%c valuea ",b.value1,b.value2);
output(b.valuea);
}
int main()
{
a_t value_a; //struct a value_a; 结构体变量
output(value_a); //不赋值输出
value_a.value1 = 3;
value_a.value2 = 'a';
output(value_a); //赋值输出