#ifdef __cplusplus

C++ CALL C CODE

C++代码中调用用C写成的库文件,就需要用extern"C"来告诉编译器:这是一个用C写成的库文件,请用C的方式来链接它们。

#ifdef  __cplusplus
extern "C" {
#endif

// 代码

#ifdef  __cplusplus
}
#endif

C CALL C++ CODE

那么你在c 中调用c++ 的代码的时候,c++ 的代码也使用这个关键字 ,后面括号内,写一些函数,那么,你在c 里声明好了即可,然后直接用之

eg:

//test.cpp
#include 
extern "C"{
	void mytest() {
		printf("mytest in .cpp file ok\n");
	}
}

//main.c
void mytest();
int main() {
	mytest();
	return 0;
}

PS:
//在C中引用C++语言中的函数和变量时,C++的函数或变量要声明在extern “C”{}里,但是在C语言中不能使用extern “C”,否则编译出错。

ref

https://www.cnblogs.com/nx520zj/p/5920782.html

你可能感兴趣的:(c)