结构体数组如何设定全局
时间: 2023-08-13 18:19:54 浏览: 150
C++中用数组实现的通讯录
4星 · 用户满意度95%
要在程序的全局范围内声明一个结构体数组,需要在所有函数的外部声明它。具体步骤如下:
1. 在定义结构体时,先声明结构体的类型:
```
typedef struct my_struct {
int id;
char *name;
// ...
} my_struct;
```
2. 在所有函数的外部声明结构体数组:
```
my_struct arr[10]; // 定义长度为10的结构体数组
```
3. 在某个函数中对结构体数组进行初始化:
```
void init_arr() {
for (int i = 0; i < 10; i++) {
arr[i].id = i;
arr[i].name = "hello";
// ...
}
}
```
4. 在其他函数中可以直接使用全局的结构体数组:
```
void print_arr() {
for (int i = 0; i < 10; i++) {
printf("%d, %s\n", arr[i].id, arr[i].name);
}
}
```
需要注意的是,在多个文件中都需要使用同一个结构体数组时,需要在一个文件中声明它为extern类型,例如:
```
// 在文件a.c中声明结构体数组
extern my_struct arr[10];
// 在文件b.c中使用该结构体数组
void print_arr() {
for (int i = 0; i < 10; i++) {
printf("%d, %s\n", arr[i].id, arr[i].name);
}
}
```
这样可以保证多个文件都能使用同一个结构体数组。
阅读全文