extern 声明struct
时间: 2023-10-13 11:06:32 浏览: 119
在C语言中,使用`extern`关键字可以声明一个外部的结构体(`struct`)。声明一个外部的结构体可以使得该结构体在多个源文件中共享。
首先,在一个源文件中定义结构体,如下所示:
```c
// example.h
struct MyStruct {
int id;
char name[20];
};
```
然后,在其他需要使用该结构体的源文件中,使用`extern`关键字来声明该结构体,如下所示:
```c
// example.c
#include "example.h"
extern struct MyStruct myStruct; // 声明外部结构体
int main() {
// 使用外部结构体
myStruct.id = 1;
strcpy(myStruct.name, "John");
return 0;
}
```
这样,在`example.c`文件中就可以使用在`example.h`文件中定义的结构体了。要确保在使用外部结构体之前,已经包含了定义该结构体的头文件。
相关问题
extern volatile struct EPWM_REGS EPwm1Regs;
这段代码声明了一个指向结构体 `EPWM_REGS` 类型的全局变量 `EPwm1Regs`,它是一个 `volatile` 类型的变量,意味着它的值可以被随时修改,编译器不会对它进行优化。这个结构体可能是由芯片厂商提供的,包含了许多用于控制和配置 EPWM 模块的寄存器地址。使用这个变量可以通过读写这些寄存器来配置和控制 EPWM 模块的行为。这个变量是 `extern` 类型的,意味着它可能被定义在其他文件中,需要在本文件中使用 `extern` 关键字来引用它。
extern struct
extern struct是用来声明一个外部结构体变量的关键字。它的作用是告诉编译器,这个结构体变量是在其他文件中定义的,需要在当前文件中引用。通过使用extern struct关键字,我们可以在当前文件中使用这个外部结构体变量,而不需要重新定义它。这样可以避免重复定义的问题。\[1\]
#### 引用[.reference_title]
- *1* [C语言:如何extern一个结构体,当一个结构体(或结构体数组)被两个c文件同时引用时如何定义](https://blog.csdn.net/qq_51865191/article/details/124068330)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item]
- *2* *3* [extern、struct等关键字](https://blog.csdn.net/qq_67569905/article/details/125433581)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]
阅读全文