extern C的用法
时间: 2023-09-22 11:09:39 浏览: 78
extern "C" 是一个在 C++ 中使用的关键字,用来声明一个外部的 C 函数或变量。它的作用是告诉编译器使用 C 语言的调用约定来处理这些函数或变量,以确保它们能够与 C 代码进行正确的交互。
在 C++ 中,默认的函数调用约定是 cdecl,而在 C 中,默认的函数调用约定是标准的 C 调用约定。这两种调用约定有所不同,因此当你在 C++ 中调用一个 C 函数时,需要使用 extern "C" 来确保函数能够正确地被调用。
例如,如果你有一个 C 函数的声明如下:
```c
int foo(int a, int b);
```
在 C++ 中调用该函数时,需要使用 extern "C" 来声明它:
```cpp
extern "C" {
int foo(int a, int b);
}
```
这样,编译器就知道该函数采用 C 调用约定,而不是默认的 cdecl 调用约定。
此外,extern "C" 也可以用于声明外部的 C 变量。例如:
```cpp
extern "C" {
extern int bar;
}
```
这样,在 C++ 中就可以正确地引用该外部的 C 变量。
总之,extern "C" 的作用是为了在 C++ 中正确地处理外部的 C 函数和变量,以保证与 C 代码的交互能够顺利进行。
相关问题
extern C用法
extern "C" 是一种C++的语法,用于在C++代码中引用和调用C语言的函数。它的主要作用是告诉编译器,某段代码应该按照C语言的规则进行编译和链接。通过使用 extern "C",可以解决C++编译器的名称修饰导致无法与C语言函数进行匹配的问题。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *3* [extern “C“ 用法详细说明](https://blog.csdn.net/weixin_40593838/article/details/122474117)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"]
- *2* [extern “C”的用法](https://blog.csdn.net/aochen3846/article/details/102337047)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]
extern 在C语言用法
extern在C语言中是一个关键字,用于声明一个全局变量或函数,以表示它是在其他地方定义或实现的。 当我们在一个文件中使用extern来声明一个全局变量时,它告诉编译器该变量是在其他文件中定义的,并且可以在当前文件中使用该变量。 同样,当我们在一个文件中使用extern来声明一个函数时,它告诉编译器该函数是在其他文件中实现的,并且可以在当前文件中调用该函数。 使用extern关键字可以帮助我们在不同的文件中共享变量和函数,从而增强代码的可重用性和可维护性。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* [c语言extern(c语言中文网)](https://blog.csdn.net/yetaodiao/article/details/127366663)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"]
- *3* [C语言中extern的用法](https://blog.csdn.net/zhaoshuzhaoshu/article/details/38339935)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]
阅读全文