结构体如何声明为extern
时间: 2023-12-10 12:41:09 浏览: 31
结构体可以声明为 extern,以便在一个源文件中定义,在另一个源文件中使用。要声明结构体为 extern,请按以下步骤进行操作:
1. 在定义结构体的源文件中,使用 extern 关键字声明结构体。
```c
// file1.c
extern struct ExampleStruct {
int x;
char y;
} exampleStruct;
```
2. 在使用结构体的源文件中,包含结构体的头文件,并使用 extern 关键字声明结构体。
```c
// file2.c
#include "example.h"
extern struct ExampleStruct exampleStruct;
```
这样,就可以在 file2.c 中使用 exampleStruct 结构体了。注意,结构体的定义只能在一个源文件中进行,否则会引起重复定义错误。
相关问题
结构体定义如何extern
在C语言中,结构体定义可以使用`extern`关键字来声明,但是不能直接定义。这是因为`extern`关键字用于指示编译器该符号的定义在其他文件中,并且在当前文件中只需要引用它。
下面是一个示例:
在头文件`example.h`中定义一个结构体类型:
```
typedef struct {
int x;
int y;
} Point;
```
在另一个文件`example.c`中使用`extern`来引用该结构体类型:
```
#include "example.h"
extern Point p; // 声明一个结构体类型的变量p
void someFunction(void) {
p.x = 10;
p.y = 20;
}
```
在主程序文件中可以定义该结构体类型的变量并使用它:
```
#include "example.h"
Point p; // 定义一个结构体类型的变量p
int main(void) {
someFunction(); // 在函数中修改结构体类型的变量p的值
return 0;
}
```
extern声明结构体数组
可以回答这个问题。extern声明结构体数组是用来引用在其他文件中定义的结构体数组的。在当前文件中使用extern关键字声明结构体数组,可以让编译器知道该结构体数组在其他文件中已经定义过了,从而避免重复定义。