函数里定义的结构体是局部变量,在这个函数外是不能使用的。
你要在函数外定义成全局变量。
例,函数外:
struct
s{
int
a;
}s1,s2;
这样的就定义了两个全局的结构体s1,s2,这两个结构体在所有函数中都可以使用,当然,使用它们的函数里,不能再定义相同名称的局部变量,否则使用的就是局部变量了。
C语言在一个函数里面定义了一个结构体,在另外一个函数里面使用:
struct
tmp
{
int
a;
int
b;
};
struct
tmp
c;
//1.
采用全局变量
int
func1()
{
struct
tmp
c;
func2(c);
//
2.
采用传参
}
1.
定义成全局变量
2.
通过传递参数
3.
只能通过这两种方式
tmp.h
#ifndef
TMP_H_
#define
TMP_H_
struct
Tmp
{
int
a;
int
b;
};
extern
struct
Tmp
c;
//这里是main.c中定义的c的扩展,可以让包括这个头文件的文件中的函数
//都可以用这个变量
#endif
//TMP_H_
把结构体写在tmp.h头文件中
在main.c中定义
struct
Tmp
c;
在其它的.c文件中包含tmp.h,那么这个文件中的函数就可以用这个c了
表示定义的是一个二维的结构体对象的数组
该数组为两行三列
类型为结构体类