`

__cplusplus

阅读更多
http://www.cnblogs.com/stonecrazyking/archive/2006/09/23/512552.html
http://blog.openrays.org/blog.php?do=showone&tid=298
#ifdef __cplusplus
extern "C" {
#endif

省略代码N行

#ifdef __cplusplus
}
#endif

__cplusplus是cpp中的自定义宏

C语言没有函数重载机制,只是简单的函数名字而已;
C++会在编译生成的汇编码中,对函数的名字做一些处理,使函数名唯一。
extern "C",是针对C与C++对函数重载不同而出现的。使得函数名->函数ID唯一。

Bjarne Stroustrup在设计C++之时,为了支持现有的C库,在C++中尽可能的支持C,
extern "C"就是其中的一个策略。


分享到:
评论

相关推荐

    解译#ifdef __cplusplus

    ### 解析 `#ifdef __cplusplus` 与 `extern "C"` 的作用 #### 一、引言 在跨语言编程的场景中,特别是在混合使用 C 和 C++ 编程时,经常会遇到 `#ifdef __cplusplus` 以及 `extern "C"` 这样的预处理器指令和...

    #ifdef __cplusplus深度剖析

    "#ifdef __cplusplus深度剖析" 本文将深入探讨`#ifdef __cplusplus`语句的用途和机理,以及在C++编程中extern "C"的必要性。 首先,让我们来了解`#ifdef __cplusplus`语句的含义。在C++编程中,`__cplusplus`是一...

    cplusplus-tutorial_nightiiz_c++手册_cplusplus教程_

    本教程,"cplusplus-tutorial_nightiiz_c++手册_cplusplus教程_",旨在帮助初学者掌握C++编程的基础知识,同时也适合有一定编程经验但希望深入理解C++特性的开发者。 C++起源于C语言,由Bjarne Stroustrup在1979年...

    c_and_cplusplus_program

    标题 "c_and_cplusplus_program" 涵盖了两个编程语言——C和C++的应用,主要涉及数据处理、排序算法以及面向对象编程的概念。在这个项目中,开发者通过编写C程序来提升对函数调用和数据操作的理解,同时通过C++程序...

    Absolute_Database_7.90_Single-User_Edition_Delphi_XE8_Cplusplus_Builder_XE8_Downloadly.ir.rar

    Absolute_Database_7.90_Single-User_Edition_Delphi_XE8_Cplusplus_Builder_XE8_Downloadly.ir.rar这个压缩包文件,主要包含了用于Delphi XE8和C++ Builder XE8开发环境的绝对数据库7.90单用户版本。本文将详细...

    Absolute_Database_7.90_Single-User_Edition_Delphi_XE3_Cplusplus_Builder_XE3_Downloadly.ir.rar

    综上所述,"Absolute_Database_7.90_Single-User_Edition_Delphi_XE3_Cplusplus_Builder_XE3_Downloadly.ir.rar"是一个为Delphi和C++ Builder用户提供数据库管理解决方案的压缩包,其内容包括了数据库系统本身以及...

    编程语言_CPlusPlus_基础知识_学习参考_1741863051.zip

    “编程语言_CPlusPlus_基础知识_学习参考”这个文件名与压缩包的标题相同,可能是整个压缩包内容的总结或索引文件,也可能是一个用于学习C++基础知识的主要文档或指南。 这个压缩包是一个为编程初学者准备的学习...

    C生成静态库给C++调用出现undefined reference to ...解决方案_cpp

    #ifdef __cplusplus extern "C" { #endif // C函数声明 void c_function(void); #ifdef __cplusplus } #endif ``` 总结来说,为了解决“undefined reference to ...”错误,我们需要确保C++程序正确地使用`extern...

    Absolute_Database_7.90_Single-User_Edition_Delphi_XE4_Cplusplus_Builder_XE4_Downloadly.ir.rar

    在压缩包"Absolute_Database_7.90_Single-User_Edition_Delphi_XE4_Cplusplus_Builder_XE4"中,包含的文件是开发和部署"Absolute Database"所需的核心组件和文档。这些文件可能包括安装程序、开发者手册、示例代码、...

    WINSOFT_Barcode_1.8_Delphi_Cplusplus_Builder_5_10_and_Lazarus_1.6.rar

    《WINSOFT Barcode 1.8 for Delphi, C++ Builder 5-10, and Lazarus 1.6》 在IT行业中,条形码生成和识别库是开发商业应用的重要组成部分,特别是对于涉及库存管理、产品追踪以及销售自动化等领域。...

    Aubo_CPlusPlus_SDK_CHN.pdf

    Aubo C++ SDK 使用手册 Aubo C++ SDK 是一个基于 C++ 语言的软件开发工具包,旨在帮助开发者快速搭建机械臂控制系统。下面是 Aubo C++ SDK 的详细知识点总结: 一、简介 Aubo C++ SDK 提供了一个基于 C++ 语言的...

    qml_And_Cplusplus.zip

    内含4个小例子,亲测有效,关于c++与qml混合编程相关的。没积分的私聊发你 《context》工程说明了:在C++中实例化并设置为QML上下文属性,在QML中...《cplusplus_Visit_Qml》工程说明了:c++读写qml属性、连接qml信号

    Absolute_Database_7.90_Single-User_Edition_Delphi_10.1_Cplusplus_Builder_10.1_Berlin_Downloadly.ir.rar

    《绝对数据库7.90单用户版:Delphi 10.1与C++ Builder 10.1柏林集成详解》 在IT开发领域,数据库管理系统的应用是至关重要的,尤其是对于那些使用 Delphi 和 C++ Builder 这样的高级集成开发环境(IDE)的开发者而...

    cplusplus 2013-2014 重制

    cplusplus.com 2014.12.15 整理书签版(依据2013.8.8重制)

    Absolute_Database_7.90_Single-User_Edition_Delphi_XE2_Cplusplus_Builder_XE2_Downloadly.ir.rar

    《绝对数据库7.90单用户版 Delphi XE2 C++ Builder XE2》是一款专为开发人员设计的数据库管理工具,适用于使用Delphi XE2和C++ Builder XE2开发环境的用户。这款数据库系统以其高效、稳定和易用性而受到广大开发者...

    Absolute_Database_7.90_Single-User_Edition_Delphi_10.2_Cplusplus_Builder_10.2_Tokyo_Downloadly.ir.rar

    《绝对数据库7.90单用户版:Delphi与C++ Builder开发的全面解析》 在编程领域,数据库管理系统(DBMS)是不可或缺的一部分,它为开发者提供了存储、管理和检索数据的强大工具。本文将深入探讨《Absolute Database ...

    vscode_cplusplus

    在“vscode_cplusplus”这个主题下,我们将深入探讨如何利用VSCode来高效地进行C++开发。 首先,安装VSCode是第一步。用户可以从官方站点下载适用于各自操作系统的版本,包括Windows、MacOS和Linux。安装完成后,...

    cplusplus-tutorial_nightiiz_c++手册_cplusplus教程_源码.zip

    《C++教程与源码详解》 C++是一种强大的、通用的编程语言,它结合了面向对象编程(OOP)的灵活性和底层编程的效率。本教程旨在为初学者提供全面的C++学习资源,同时也适合有经验的程序员进一步深化理解和提升技能。...

    Absolute_Database_7.90_Single-User_Edition_Delphi_XE5_Cplusplus_Builder_XE5_Downloadly.ir.rar

    《绝对数据库7.90单用户版:Delphi XE5与C++ Builder XE5的集成应用》 在IT领域,数据库管理系统的使用至关重要,尤其是对于开发人员来说,选择一款高效、稳定且易于集成的数据库系统是提高生产力的关键。...

    关于C++中编译C代码的条件编译说明

    首先,我们来看标题和描述中提到的关键点——`__cplusplus`。这个预处理器宏是C++特有的,它在C++编译器(如g++)中被自动定义。当C++源文件被编译时,`__cplusplus`会被设置为一个非零值,这使得我们可以检测当前...

Global site tag (gtag.js) - Google Analytics