c __cplusplus详解

Posted WFApple

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c __cplusplus详解相关的知识,希望对你有一定的参考价值。

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++库的头文件。

以上是关于c __cplusplus详解的主要内容,如果未能解决你的问题,请参考以下文章

《C语言杂记》详解extern “C“

#ifdef __cplusplus 的用法(C语言调用c++代码)

#ifdef __cplusplus+extern "C"的用法

#ifdef __cplusplus extern “C“{ #endif的作用

#ifdef __cplusplus 的使用

__cplusplus的用法(转)