c++中extern是干什么的
时间: 2023-05-22 20:04:30 浏览: 49
extern在C语言中是用来声明一个在其他文件中定义的变量或函数的关键字。它告诉编译器该变量或函数在当前文件中没有定义,需要在其他文件中寻找它的定义。例如,在一个源文件中使用了某个全局变量,在该文件中使用extern声明该变量,然后在另一文件中定义该全局变量,这样编译器就能够将两个文件正确的链接起来。
相关问题
c++中extern
extern "C"的作用是用于C和C++混合编程时,告诉编译器某个函数是按照C的链接规则进行编译和链接的。在C++中,函数名会经过名称修饰(name mangling)以支持函数重载,而C语言没有函数重载的概念,因此如果想在C++中调用C语言编写的函数,需要用extern "C"来告诉编译器按照C的链接规则处理该函数。
下面是使用extern "C"的一个例子:
// C代码
#ifdef __cplusplus
extern "C" {
#endif
int add(int a, int b);
#ifdef __cplusplus
}
#endif
// C++代码
#include <iostream>
extern "C" {
#include "mylib.h"
}
int main() {
int result = add(3, 4);
std::cout << "Result: " << result << std::endl;
return 0;
}
c++中extern关键字
在C++中,"extern"是一个关键字,用于声明在另一个源文件或模块中定义的变量或函数。当一个变量或函数被声明为"extern"时,它告诉编译器该变量或函数在其他地方被定义,在当前文件中不需要为其分配内存或生成代码。相反,链接器将在链接时解析对外部变量或函数的引用。
以下是使用"extern"在一个文件中声明变量,在另一个文件中定义变量的示例:
文件1(声明):
```
extern int myVariable; // 将myVariable声明为外部变量
```
文件2(定义):
```
int myVariable = 42; // 定义myVariable并将其初始化为42
```
现在,当链接器将这两个文件链接在一起时,它将把文件1中对"myVariable"的引用解析为文件2中的定义。这允许变量在程序的多个文件之间共享,而不会导致链接器错误。