C语言结构体怎么全局
时间: 2024-06-17 11:03:43 浏览: 12
在C语言中,结构体可以定义在函数内部或者函数外部,如果在函数外部定义结构体,则该结构体可以全局使用。具体实现方式如下:
1. 在头文件中定义结构体
可以在头文件中定义结构体,这样在需要使用结构体的源文件中包含该头文件即可全局使用该结构体。
例如,在mystruct.h头文件中定义一个名为MyStruct的结构体:
```c
#ifndef MYSTRUCT_H
#define MYSTRUCT_H
typedef struct {
int x;
int y;
} MyStruct;
#endif
```
然后在需要使用该结构体的源文件中包含该头文件即可:
```c
#include "mystruct.h"
int main() {
MyStruct s;
s.x = 1;
s.y = 2;
return 0;
}
```
2. 在源文件中定义结构体
可以在需要使用结构体的源文件中定义结构体,然后使用extern关键字将该结构体声明为全局变量。
例如,在main.c源文件中定义一个名为MyStruct的结构体:
```c
typedef struct {
int x;
int y;
} MyStruct;
MyStruct s;
int main() {
s.x = 1;
s.y = 2;
return 0;
}
```
然后在其他需要使用该结构体的源文件中使用extern关键字声明该结构体即可:
```c
extern MyStruct s;
void foo() {
printf("%d %d\n", s.x, s.y);
}
```
这样,就可以在其他源文件中全局使用该结构体了。