c中的extern c++ extern
时间: 2023-11-21 15:14:36 浏览: 107
在C语言中,extern是一个关键字,用于在一个文件中声明一个全局变量或函数,表示该变量或函数在其他文件中定义或已经定义。
当使用extern关键字声明一个变量时,它将告诉编译器该变量在其他地方有定义,并且可以在当前文件中使用。这是为了避免重复定义相同的全局变量。
而extern "C"是用于C++语言的,它表示在C++编译环境中按照C语言的方式进行函数的链接和命名。当我们在C++代码中需要调用一个C语言写的函数时,需要使用extern "C"来告诉编译器按照C的方式进行处理。
总结起来,extern用于声明具有外部链接性的全局变量和函数,而extern "C"用于在C++中与C语言进行链接。
相关问题
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语言的规则处理这些代码。
c++中externc
在C++中,extern "C"用于声明或定义C语言符号,以便与C兼容。它可以防止C++编译器对函数名进行修饰,从而使得C++代码可以调用C语言编写的函数。下面是一个示例:
```cpp
#ifdef __cplusplus
extern "C" {
#endif
void func(); // 声明一个C语言函数
#ifdef __cplusplus
}
#endif
```
在上面的示例中,我们使用了条件编译来确保只有在C++环境下才会使用extern "C"。这样做是为了避免在C语言环境下出现编译错误。
阅读全文