在项目代码中看见这段代码:
#ifndef __XXX_H__ #define __XXX_H__
#ifdef __cplusplus extern "C" { #endif
/*...*/
#ifdef __cplusplus }; #endif
2 3
|
#ifdef __cplusplus //c++编译环境中才会定义__cplusplus (plus就是"+"的意思) extern "C" { //告诉编译器下面的函数是c语言函数(因为c++和c语言对函数的编译转换不一样,主要是c++中存在重载) #endif |
总结:就是当是用C++编译的时候,extern "C"里面的东西还是按照C的方式来编译。
#ifdef __cplusplus extern "C" { #endif /*...*/ #ifdef __cplusplus } #endif含义
原文:https://www.cnblogs.com/douzujun/p/10619393.html