Code:
#ifdef __cplusplus
extern "C" {
#endif
...
#ifdef __cplusplus
}
#endif
解释:1.c++中定义了__cplusplus,C语言中没有该定义。即:识别是c代码还是c++代码。
如下段代码:
#include <stdio.h>
int main(int argc,char *argv[])
{
#ifdef __cplusplus
printf("This is a c ++ program!\n");
#endif
#ifndef __cplusplus
printf("This is a c program!");
#endif
reutrn 0;
}
分别编译:gcc test.c
./a.out
g++ test.c
./a.out
看到程序输出内容你便知道了。
解释2.C语言和C++编译出来的函数不用,调用extern "C"会让c++编译器按照c的编译格式来编译。多用于c++库的头文件。
原文链接: https://www.cnblogs.com/wfwenchao/p/5825134.html
欢迎关注
微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍
原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/239782
非原创文章文中已经注明原地址,如有侵权,联系删除
关注公众号【高性能架构探索】,第一时间获取最新文章
转载文章受原作者版权保护。转载请注明原作者出处!