C++ extern关键字
时间: 2023-11-14 10:41:49 浏览: 93
extern关键字用于声明在其他文件中定义的全局变量或函数。它告诉编译器该变量或函数的定义在其他地方,不需要在当前文件中进行定义。例如,如果在文件A中定义了一个全局变量,但是在文件B中需要使用该变量,那么可以在文件B中使用extern关键字来声明该变量。这样,在编译时,编译器就不会报错说找不到该变量的定义。同样,如果在文件A中定义了一个函数,但是在文件B中需要调用该函数,也可以使用extern关键字来声明该函数。
相关问题
c++ extern关键字
extern关键字在C语言中有多种用法。
第一种用法是在变量的声明中使用extern关键字,表示该变量在其他源文件中定义。例如,extern const char Buffer[];表示Buffer变量在其他文件中定义,并可以在当前文件中使用。
第二种用法是在函数的声明中使用extern关键字,表示该函数可能在其他源文件中定义。例如,extern int f();表示f函数可能在其他文件中定义,并可以在当前文件中使用。
第三种用法是在C++中使用extern "C"来指定函数的链接方式。这是为了解决C++函数重载带来的函数名和参数不同导致链接错误的问题。通过extern "C"修饰函数,告诉编译器保持函数名称不变,不生成用于链接的中间函数名。这通常在C++代码中与C函数交互时使用。
总而言之,extern关键字在C语言中用于声明变量和函数的链接方式,以及在C++中用于修饰函数以保持函数名称不变。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* [C++全局变量的定义和声明](https://blog.csdn.net/webzhuce/article/details/38899635)[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%"]
- *2* *3* [C/C++种extern关键字详解](https://blog.csdn.net/weixin_38218095/article/details/96473556)[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 ]
C++ extern关键字的详细作用
extern是C++语言中的一个关键字,其作用主要有以下两个:
1. 声明外部变量或函数
当我们在一个源文件中声明一个变量或函数时,如果我们想要在另一个源文件中使用这个变量或函数,就需要使用extern关键字来声明它是一个外部变量或函数。例如:
```
// file1.cpp
int g_var = 0;
extern void func();
// file2.cpp
extern int g_var;
void func() {
g_var++;
}
```
在这个例子中,我们在file1.cpp文件中定义了一个全局变量g_var和一个函数func。由于我们希望在file2.cpp文件中使用这个全局变量和函数,所以我们在file1.cpp中使用extern关键字来声明它们是外部变量和函数。在file2.cpp文件中,我们同样使用extern关键字来声明g_var是一个外部变量,并在func函数中使用它。
2. 定义外部变量或函数
除了声明外部变量或函数之外,extern关键字还可以用来定义外部变量或函数。在这种情况下,我们需要在定义时使用extern关键字,并在后面加上初始化表达式。例如:
```
// file1.cpp
extern int g_var = 0;
extern void func() {
g_var++;
}
// file2.cpp
extern int g_var;
extern void func();
int main() {
func();
return g_var;
}
```
在这个例子中,我们在file1.cpp文件中定义了一个外部变量g_var和一个外部函数func。由于我们希望在file2.cpp文件中使用这个外部变量和函数,所以我们在file1.cpp中使用extern关键字来定义它们。在file2.cpp文件中,我们同样使用extern关键字来声明g_var和func是外部变量和函数,并在main函数中使用它们。
总的来说,extern关键字的作用是声明或定义外部变量或函数。
阅读全文