c++ extern用法
时间: 2023-09-04 15:17:25 浏览: 161
extern是C语言中的一个关键字,用于声明一个变量或函数是在其他文件中定义的。它告诉编译器这个变量或函数在当前文件中不需要定义,而是在其他文件中定义并且可以被访问。
在使用extern时,需要注意以下几点:
1. 在当前文件中使用extern声明的变量或函数必须在其他文件中定义过。
2. 在其他文件中定义的变量或函数需要使用extern进行声明才能在当前文件中使用。
3. extern声明并不会分配内存空间,它只是告诉编译器这个变量或函数在其他地方定义了,需要在链接时进行连接。
例如,在一个文件中声明一个全局变量,但是在另一个文件中定义它,可以使用extern进行声明:
file1.c
```c
extern int global_var;
int main()
{
printf("%d\n", global_var);
return 0;
}
```
file2.c
```c
int global_var = 10;
```
在这个例子中,file1.c中使用了extern声明了一个全局变量global_var,而它的定义在file2.c中。在编译时,编译器会先编译file1.c,然后在链接时将global_var和它的定义连接起来,从而使程序可以正确地访问到这个全局变量。
相关问题
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;
}
```
c++ extern的用法
C++中的extern关键字用于声明一个全局变量或函数,表示该变量或函数是在其他文件中定义的。它的作用是告诉编译器该变量或函数的定义在其他地方,不需要在当前文件中进行定义。
具体来说,extern可以用于以下两种情况:
1. 声明全局变量:当在一个文件中声明一个全局变量时,如果希望在其他文件中使用该变量,需要使用extern关键字进行声明。例如,在文件A.cpp中定义了一个全局变量int num,如果想在文件B.cpp中使用该变量,可以在B.cpp中使用extern int num进行声明。
2. 声明全局函数:当在一个文件中声明一个全局函数时,如果希望在其他文件中调用该函数,同样需要使用extern关键字进行声明。例如,在文件A.cpp中定义了一个全局函数void func(),如果想在文件B.cpp中调用该函数,可以在B.cpp中使用extern void func()进行声明。
需要注意的是,extern关键字只是用于声明,不会分配内存空间或定义变量或函数的实现。它只是告诉编译器该变量或函数的定义在其他地方,编译器在链接阶段会找到对应的定义进行连接。
阅读全文