extern c
时间: 2023-07-26 17:12:12 浏览: 48
"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++ 代码中正确地调用该函数。
相关问题
extern C语言
extern 是 C 语言中的一个关键字,用于声明一个函数或变量是在其他文件中定义的。它可以用来在一个源文件中引用另一个源文件中定义的函数或变量。
当在一个源文件中使用 extern 关键字声明一个函数时,意味着该函数是在另一个源文件中定义的,编译器会在链接阶段将其与实际定义连接起来。
例如,在一个源文件 A.c 中使用 extern 声明一个函数 foo():
extern void foo(); // 函数 foo() 在其他地方定义
然后在另一个源文件 B.c 中定义该函数:
void foo() {
// 函数定义
}
这样,编译器会在链接阶段将 A.c 和 B.c 中的代码连接起来,使得 A.c 中对 foo() 函数的调用能正确执行。
extern c语言举例
C语言中,auto和static关键字用于定义变量的存储类型。
auto: 默认存储类型,在函数体内定义的变量默认为auto。这种类型的变量存储在栈中,作用域仅限于所在函数。
static: 存储类型为静态,在整个程序运行期间都存在。这种类型的变量存储在静态存储区中,作用域仅限于所在文件。
extern: 存储类型为外部,用于在一个文件中声明另一个文件中已经定义过的变量或函数。extern变量或函数只是声明,而不是定义。