extern 啥意思 c++
时间: 2024-06-08 12:03:40 浏览: 20
extern 是 C++ 中的一个关键字,用于声明外部变量和函数。使用 extern 可以将变量或函数的定义放在其他文件中,然后在当前文件中进行引用。这样做的好处是可以避免重复定义,使得程序结构更加清晰。
具体来说,当我们在一个文件中定义一个全局变量或函数时,该变量或函数默认情况下是具有外部链接属性的,可以被其他文件引用。但是,如果我们想在另一个文件中使用这个全局变量或函数,则需要在该文件中使用 extern 关键字进行声明,告诉编译器该变量或函数的定义在其他文件中。
例如,在一个文件中定义了一个全局变量 int x = 10; ,如果想在另一个文件中使用这个变量,则需要在该文件中使用 extern int x; 进行声明。
相关问题
extern c++
### 回答1:
"extern C++" 是一个 C++ 的关键字,通常用于在 C++ 代码中引用 C 代码中的函数或变量。
在 C++ 中,函数名由编译器自动重载,以便支持函数重载。这意味着在 C++ 中存在多个函数名相同但参数类型和数量不同的函数。这与 C 不同,因为在 C 中,所有函数都必须有唯一的名称。
当 C++ 代码需要调用 C 代码中的函数时,需要使用 "extern C++" 关键字来告诉编译器该函数使用 C 的命名约定,而不是 C++ 的命名约定。
例如,在 C 代码中定义了一个函数:
```c
int add(int a, int b);
```
在 C++ 代码中调用该函数时,需要使用 "extern C++" 关键字:
```c++
extern "C" {
int add(int a, int b);
}
```
这将告诉编译器该函数使用 C 的命名约定,因此可以在 C++ 代码中正确地调用该函数。
### 回答2:
extern "C" 是用在C++中的关键字,主要用于在C++代码中调用C语言的函数或变量。
C语言和C++语言有一些不同之处,最主要的区别是它们的函数名和变量名的命名规则不同。在C语言中,函数名和变量名是平级的,没有命名空间的概念,并且符号的重载、函数的重载等特性都不存在。而C++语言引入了命名空间的概念,允许同一个函数名在不同的命名空间中重载定义,还支持符号的重载,函数的重载等特性。
当C++代码需要调用一个C语言的函数或变量时,由于C语言的命名规则和C++不同,C++编译器无法直接将C语言的函数名或变量名理解为C++代码中的函数或变量。为了解决这个问题,就需要使用 extern "C" 来告诉编译器这是一个C语言的函数或变量,让编译器按照C语言的命名规则去处理。
extern "C" 的作用是用来修饰一段C语言的代码,告诉编译器按照C语言的规则来处理这段代码。在C++中,使用 extern "C" 修饰的代码可以在C++中调用。
一般情况下,extern "C" 会和 C 语言的头文件一起使用,例如:extern "C" { #include "c_header.h" }。这样,c_header.h中的函数和变量就可以在C++代码中正常使用。
总之,extern "C" 是C++中的关键字,用于在C++代码中调用C语言的函数或变量,并告诉编译器按照C语言的规则处理这些代码。
extern用法c++
extern在C++中主要用于声明外部变量和函数,以便在其他文件或模块中使用。它的作用是告诉编译器,某个变量或函数的定义在其他文件中,需要在链接时进行连接。在C++中,extern可以用于全局变量和函数的声明,也可以用于类的成员函数的声明。在全局变量和函数的声明中,extern关键字可以省略,因为它们默认就是extern类型的。而在类的成员函数的声明中,extern关键字必须显式地声明。另外,extern "C"用于告诉编译器,某个函数按照C语言的方式进行编译,而不是C++的方式。这样可以避免C++的函数名修饰导致链接错误的问题。