#ifdef __cplusplus extern "C"
发布日期:2021-05-19 20:28:53 浏览次数:20 分类:精选文章

本文共 896 字,大约阅读时间需要 2 分钟。

一段代码通过设置# ifdef __cplusplus来判断编译器的具体版本。在C++中,外部链接库文件通常需要使用 extern "C" 来处理,原因在于:

#ifdef __cplusplus
extern "C" {
#endif
//一段代码
#ifdef __cplusplus
}
#endif
首先,__cplusplus 是C++中的一个预处理器指令,用于检测是否是C++文件。在定义了这个宏的情况下,表明这是一段C++代码。

其中{ }内部的C代码是通过extern "C"进行处理的。要理解为什么要使用extern "C",我们需要从C++对函数重载的支持开头说起。在C++中,为了支持函数重载的机制,编译器会对生成的汇编代码进行处理,加入返回类型、函数名称等信息。而在C语言中,函数调用的仅仅是根据函数名称进行的,没有附加信息。

C++的设计者在创造C++时,希望能够尽可能地支持现有的C代码库。extern "C"就是一个重要的策略。它告诉编译器:你面对的是一段C代码,应该以C的方式来处理。通过使用extern "C",C++代码可以透 Triumph过原有的C函数库文件,实现与外部C库的兼容。

2016-03-24 阅读(256) 评论(38)
上一篇:Javascript 中的false、0、null、undefined和空字符串对象
下一篇:C++基于TCP和UDP的socket通信

发表评论

最新留言

表示我来过!
[***.240.166.169]2025年05月01日 21时15分55秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章