extern语句怎么用
时间: 2023-09-17 07:06:34 浏览: 25
`extern` 关键字用于在一个源文件中声明一个变量或函数,该变量或函数在另一个源文件中定义。这样做可以使得多个源文件共享同一个变量或函数。
在声明变量时,`extern` 关键字告诉编译器该变量在其他文件中定义,而在定义变量时,则不需要使用 `extern` 关键字。
例如,在一个源文件中声明一个全局变量 `x`,并在另一个源文件中定义该变量:
```
// 文件1:声明全局变量 x
extern int x;
// 文件2:定义全局变量 x
int x = 1;
```
在文件1中,我们使用 `extern` 关键字来告诉编译器变量 `x` 在其他地方定义。在文件2中,我们定义了变量 `x` 并初始化为 1。
注意:在 C++ 中,全局变量和函数默认情况下是外部链接(external linkage),可以被其他文件访问。在 C 中,全局变量和函数默认情况下是静态链接(static linkage),只能在当前文件中访问。如果需要在其他文件中访问,需要使用 `extern` 关键字进行声明。
相关问题
extern 'C'
extern 'C'是一个C语言的指令,用于支持C与C++混合编程。它的作用是告诉编译器使用C规则来编译指定的代码。在C++程序中,当需要调用C库或者在C++代码中引入C语言的函数时,使用extern 'C'可以确保函数按照C语言的方式进行链接和调用。
在使用extern 'C'时,需要注意以下几点:
1. 在C++的代码中,使用extern 'C'修饰需要调用的C函数的声明。
2. 在C++的代码中,可以选择使用方法一或方法二来处理对应的头文件:
- 方法一是在C++代码中注释掉#include语句,这样可以避免链接错误。
- 方法二是在C语言的头文件中使用#ifdef __cplusplus和#ifdef __cplusplus来包裹函数的声明,在C++代码中不需要进行任何修改。
3. 在C程序中,使用g编译器可以避免链接错误,但建议还是对C文件进行extern 'C'修饰以保证兼容性。
总之,extern 'C'的使用可以确保C和C++之间的兼容性,避免链接错误,并且允许在C++代码中调用C语言的函数。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* [extern “C“用法简介](https://blog.csdn.net/zw_whusgg/article/details/125068380)[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^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"]
- *3* [extern c 用法解析](https://download.csdn.net/download/ainiyiwannian100/8490969)[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^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]
extern TIM_HandleTypeDef g_timx_pwm_chy_handle;这个语句是什么意思
这是一个使用了 extern 关键字的函数外声明语句,它的意思是在当前代码文件之外声明一个名为 g_timx_pwm_chy_handle 的变量,该变量的类型为 TIM_HandleTypeDef,即 Timer 外设的句柄类型。这样,其他文件就可以通过 extern 关键字来引用该变量,而无需重新定义它。
一般情况下,extern 关键字用于在不同的源文件中共享变量和函数的定义。在当前文件中,该声明语句告诉编译器该变量的定义在其他文件中,因此编译器不会为该变量分配内存空间。而在其他文件中,使用 extern 关键字来引用该变量时,编译器就会知道该变量的定义在其他文件中,并且会在链接时将它们连接在一起。