extern声明数组
时间: 2024-08-12 14:00:39 浏览: 77
`extern` 声明数组在C或C++中用于表示一个变量或类型已经在其他文件(通常是一个头文件)中定义,但在当前文件中只做引用,而不是实际定义和分配内存。当你在一个源文件中看到一个 `extern` 数组声明时,它告诉编译器这个数组存在别处,并不需要在这里初始化。
例如:
```c++
// 在头文件 array.h 中
extern int myArray[10]; // 外部声明数组
// 在另一个源文件 array.cpp 中
int myArray[10] = {0}; // 实际定义并初始化数组
// 在主程序中包含头文件
#include "array.h"
```
在这个例子中,`myArray` 在 `array.h` 中作为外部声明,而在 `array.cpp` 文件中提供其实际内容。这样做的好处是可以避免数据冗余,如果多个文件都需要使用同一数组,只需在一处定义即可。
相关问题
extern 结构体数组
extern 结构体数组是指在一个源文件中声明一个结构体数组,但不进行定义和初始化,而是在其他源文件中进行定义和初始化。这样可以使得多个源文件共享使用同一个结构体数组。
在声明时,可以使用 extern 关键字来告知编译器该结构体数组的定义和初始化在其他源文件中进行。例如:
```c
// file1.c
struct MyStruct {
int num;
char name[20];
};
extern struct MyStruct myArray[10];
// file2.c
#include "file1.c"
struct MyStruct myArray[10] = {
{1, "John"},
{2, "Alice"},
// ...
};
```
在这个例子中,file1.c 中声明了一个 extern 结构体数组 myArray,但没有进行定义和初始化。在 file2.c 中通过包含 file1.c,并进行定义和初始化来完成对该结构体数组的实际定义。
这样,其他源文件也可以通过包含 file1.c 来访问和使用这个结构体数组。
extern声明结构体数组
可以回答这个问题。extern声明结构体数组是用来引用在其他文件中定义的结构体数组的。在当前文件中使用extern关键字声明结构体数组,可以让编译器知道该结构体数组在其他文件中已经定义过了,从而避免重复定义。
相关推荐
![application/msword](https://img-home.csdnimg.cn/images/20210720083327.png)
![application/msword](https://img-home.csdnimg.cn/images/20210720083327.png)
![application/msword](https://img-home.csdnimg.cn/images/20210720083327.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)