该死的结构体,折腾了哥快两小时!!!在此总结一下。
假设a.h文件定义结构体:
struct test
{
int a;
int b;
};那么要在b.c文件中调用该怎么写呢?
需要两步:
1、头文件包含
#include "a.h"2、先定义一个结构体变量(注意是定义,不是声明)
struct test c;2、在b.c文件中声明要调用的结构体变量(注意是声明,声明为全局变量)
extern struct test c;3、然后就可以给结构体成员赋值
/*成员赋值*/
c.a = 1;
c.b = 2;
当然,如果变量定义为结构体指针变量,则变成如下:
/*定义*/
struct test *c;
/*声明*/
extern struct test *c;
/*成员赋值*/
c->a = 1;
c->b = 2;另外还有另一个变种,使用typedef 定义结构体
typedef struct test
{
int a;
int b;
}result;
/*定义*/
result c;
/*声明*/
extern result c;
/*成员赋值*/
c.a = 1;
c.b = 2;result是一个结构体类型,不是结构体变量,定义变量like this :result y0,y1;y0、y1才属于结构体变量。实际上 result = struct test
本文详细介绍了如何在C语言中定义和调用结构体,包括直接定义结构体变量、定义结构体指针变量以及使用typedef简化结构体定义的方法。
4841

被折叠的 条评论
为什么被折叠?



