extern “C“
1. extern “C“的作用
-
被 extern 限定的函数或变量是 extern 类型的
-
被
extern "C"
修饰的变量和函数是按照 C 语言方式编译和链接 -
如果extern C加在实现上,会出现链接方式的冲突问题。
extern "C"
的作用是让 C++ 编译器将 extern "C"
声明的代码当作 C 语言代码处理,可以避免 C++ 因符号修饰导致代码不能和C语言库中的符号进行链接的问题。
2. 什么时候用到extern C
我们在项目开发中,遇到第三方的库,第三方库可能是用C语言编写的,给我们的接口就是C语言函数接口,比如mysql的库等
//mymath.c
int sum(int a, int b)
{
return a + b;
}
//main.cpp
#include <iostream>
using namespace std;
//使用extern "C"修饰
extern "C"
{
int sum(int a, int b);
}
int main()
{
int res = sum(3, 2);
std::cout << "res = " << res << std::endl;
return 0;
}
3. 使用
#ifdef __cplusplus
extern "C" {
#endif
void *memset(void *, int, size_t);
#ifdef __cplusplus
}
#endif
参考文献
重磅干货 :五万字长文总结 C/C++ 知识(上)
C语言extern关键字用法和理解_小牛CKX的博客-CSDN博客_c extern