cpp extern 用法
时间: 2023-01-15 11:58:59 浏览: 73
extern 关键字在 C++ 中有两种用法:
1. 在函数外声明全局变量:extern 可以用来在一个 C++ 源文件中声明另一个源文件中已经定义过的全局变量。例如:
在文件 a.cpp 中:
```
int a = 1;
```
在文件 b.cpp 中:
```
extern int a;
```
这样在 b.cpp 中就可以使用变量 a 了。
2. 声明函数在其他源文件中已经定义过:extern 可以用来声明在另一个源文件中已经定义过的函数。例如:
在文件 a.cpp 中:
```
void print() {
std::cout << "Hello, world!" << std::endl;
}
```
在文件 b.cpp 中:
```
extern void print();
```
这样在 b.cpp 中就可以使用函数 print 了。
注意:extern 只能用来声明变量或函数,不能用来定义。例如,在文件 b.cpp 中不能写成这样:
```
extern int a = 1; // 错误!
```
正确的写法应该是:
```
int a = 1;
```
相关问题
c++extern用法
C++中extern关键字有两种用法:
1. 用于声明外部变量:当在一个文件中声明一个变量时,该变量的作用域仅限于当前文件。如果想在其他文件中使用该变量,需要使用extern关键字进行声明。这样可以将变量的作用域扩展到其他文件中,使其可以被其他文件访问和使用。
示例代码如下:
```cpp
// file1.cpp
extern int globalVar; // 声明外部变量
// file2.cpp
int globalVar = 10; // 定义外部变量
// main.cpp
#include <iostream>
extern int globalVar; // 声明外部变量
int main() {
std::cout << "globalVar: " << globalVar << std::endl; // 输出:globalVar: 10
return 0;
}
```
2. 用于指明函数的外部链接属性:在C++中,函数默认情况下具有外部链接属性,可以被其他文件中的函数调用。但是,如果想在C++中调用C语言编写的函数,需要使用extern "C"来指明函数的外部链接属性,以便正确地进行函数调用。
示例代码如下:
```cpp
// c_code.c
#include <stdio.h>
void c_function() {
printf("This is a C function.\n");
}
// cpp_code.cpp
#include <iostream>
extern "C" void c_function(); // 声明C语言编写的函数
int main() {
c_function(); // 调用C语言编写的函数
return 0;
}
```
Extern的使用方法
"extern"是一个关键字,用于在C/C++程序中声明外部变量或函数,它的作用是告诉编译器该变量或函数在其他文件中定义,而不是在当前文件中定义。
在C程序中,"extern"通常用于声明全局变量或函数,以便在其他文件中使用它们,而不需要重新定义。在C++程序中,由于C++支持函数重载,因此"extern"也可以用于声明同名但参数列表不同的函数。
下面是"extern"关键字的一些使用方法:
1. 声明全局变量
```c
// file1.c
int global_var; // 定义全局变量
// file2.c
extern int global_var; // 声明全局变量
```
2. 声明全局函数
```c
// file1.c
int add(int a, int b) { // 定义全局函数
return a + b;
}
// file2.c
extern int add(int a, int b); // 声明全局函数
```
3. 在头文件中声明全局变量或函数
```c
// file.h
extern int global_var; // 声明全局变量
extern int add(int a, int b); // 声明全局函数
// file.c
#include "file.h"
int global_var; // 定义全局变量
int add(int a, int b) { // 定义全局函数
return a + b;
}
```
4. 声明外部链接函数
```c
// file1.c
extern "C" {
void func1(void) { ... } // 定义外部链接函数
}
// file2.cpp
extern "C" {
void func1(void); // 声明外部链接函数
}
```
总之,"extern"关键字用于在C/C++程序中声明外部变量或函数,以便在其他文件中使用它们。