当前位置: 首页 > news >正文

extern “C“

1. extern “C“的作用

  • 被 extern 限定的函数或变量是 extern 类型的

  • 被 extern "C" 修饰的变量和函数是按照 C 语言方式编译和链接

  • 如果extern C加在实现上,会出现链接方式的冲突问题。 

extern "C" 的作用是让 C++ 编译器将 extern "C" 声明的代码当作 C 语言代码处理,可以避免 C++ 因符号修饰导致代码不能和C语言库中的符号进行链接的问题。

2. 什么时候用到extern C

我们在项目开发中,遇到第三方的库,第三方库可能是用C语言编写的,给我们的接口就是C语言函数接口,比如mysql的库等

//mymath.c
int sum(int a, int b)
{
    return a + b;
}
//main.cpp
#include <iostream>

using namespace std;

//使用extern "C"修饰
extern "C"
{
    int sum(int a, int b);
}

int main()
{
	int res = sum(3, 2);
	std::cout << "res = " << res << std::endl;
	return 0;
}

3. 使用

#ifdef __cplusplus
extern "C" {
#endif

void *memset(void *, int, size_t);

#ifdef __cplusplus
}
#endif

参考文献

重磅干货 :五万字长文总结 C/C++ 知识(上)

C语言extern关键字用法和理解_小牛CKX的博客-CSDN博客_c extern 

相关文章:

  • 基于ARM9平台的网络可视电话设计
  • [Qualcomm][GPIO]高通芯片引脚相关知识记录
  • 平衡二叉树之红黑树
  • 【python-Unet】计算机视觉~舌象舌头图片分割~机器学习
  • 【云原生】Hive on k8s 环境部署
  • 一起来学Kotlin:概念:1. Kotlin ArrayListOf 的使用案例
  • 基于MATLAB/GUI的自组网仿真平台,对比leach,ADOV协议
  • 四、哈希表相关题目
  • 【WSN定位】基于改进chan算法和talor算法实现多基站目标定位附matlab代码
  • 【LeetCode每日一题】2022-10-02 777. 在LR字符串中交换相邻字符 Java实现
  • 网络安全从业人员能力图谱
  • 从程序员的角度看人类通信史
  • OpenCV之识别银行卡号
  • 回归-线性回归算法(房价预测项目)
  • 【一起学数据结构与算法】Java实现双链表
  • __proto__ 和 prototype的关系
  • 【Redis学习笔记】2018-06-28 redis命令源码学习1
  • 【编码】-360实习笔试编程题(二)-2016.03.29
  • 2018一半小结一波
  • C# 免费离线人脸识别 2.0 Demo
  • Debian下无root权限使用Python访问Oracle
  • ES6--对象的扩展
  • EventListener原理
  • idea + plantuml 画流程图
  • JavaScript-Array类型
  • Js基础知识(四) - js运行原理与机制
  • Just for fun——迅速写完快速排序
  • nfs客户端进程变D,延伸linux的lock
  • Otto开发初探——微服务依赖管理新利器
  • 对话 CTO〡听神策数据 CTO 曹犟描绘数据分析行业的无限可能
  • 给第三方使用接口的 URL 签名实现
  • 理解在java “”i=i++;”所发生的事情
  • 聊聊flink的BlobWriter
  • 每天一个设计模式之命令模式
  • 使用 @font-face
  • 移动互联网+智能运营体系搭建=你家有金矿啊!
  • 再次简单明了总结flex布局,一看就懂...
  • media数据库操作,可以进行增删改查,实现回收站,隐私照片功能 SharedPreferences存储地址:
  • ​二进制运算符:(与运算)、|(或运算)、~(取反运算)、^(异或运算)、位移运算符​
  • ​油烟净化器电源安全,保障健康餐饮生活
  • (1)安装hadoop之虚拟机准备(配置IP与主机名)
  • (Mirage系列之二)VMware Horizon Mirage的经典用户用例及真实案例分析
  • (翻译)Quartz官方教程——第一课:Quartz入门
  • (转)微软牛津计划介绍——屌爆了的自然数据处理解决方案(人脸/语音识别,计算机视觉与语言理解)...
  • .NET CF命令行调试器MDbg入门(二) 设备模拟器
  • .NET Framework与.NET Framework SDK有什么不同?
  • .NET MVC之AOP
  • .NET/C# 使窗口永不获得焦点
  • @AliasFor注解
  • [ IOS ] iOS-控制器View的创建和生命周期
  • [ vulhub漏洞复现篇 ] Jetty WEB-INF 文件读取复现CVE-2021-34429
  • [AIGC] Kong:一个强大的 API 网关和服务平台
  • [C#]C# winform部署yolov8目标检测的openvino模型
  • [C++提高编程](三):STL初识
  • [codevs 1515]跳 【解题报告】