
#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)
发表评论
最新留言
表示我来过!
[***.240.166.169]2025年05月01日 21时15分55秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
laradock 安装使用 kafka
2023-01-30
laravel 5.3 给容器传参
2023-01-30
laravel 5.5 -- Eloquent 模型关联
2023-01-30
laravel mix
2023-01-30
Laravel Passport
2023-01-30
laravel 之 Eloquent 模型修改器和序列化
2023-01-30
Laravel 使用 - artisan schedule使用
2023-01-30
Laravel 使用rdkafka
2023-01-30
Laravel 多环境配置
2023-01-30
laravel 学习之第一章
2023-01-30
laravel 学习之第二章
2023-01-30
Laravel 安装上传代码不完整的解决方法
2023-01-30
laravel 安装添加多站点
2023-01-30
Laravel 开源项目 『 糖果盒子 - Web 开发者的书签导航 』
2023-01-30
Laravel 模型
2023-01-30
Laravel 深入理解路由和URL生成
2023-01-30
laravel 生命周期与框架精髓
2023-01-30
laravel 表单验证
2023-01-30
laravel 调试sql
2023-01-30
laravel 路由缓存
2023-01-30