新闻详情

新闻详情

首页 / 资讯中心 / 详情

C 和 C++ 区别

发布时间:2026/9/29 11:05:47来源:尧图网络
C 和 C++ 区别
一、理论语言定位C面向过程语言关注怎么做侧重流程、函数、内存操作没有类、对象、继承等面向对象特性。C在C基础上扩展支持面向过程 面向对象 泛型编程兼容大部分C语法。核心差异C是过程驱动C支持面向对象封装、继承、多态。核心特性差异输入输出C用printf/scanfC推荐cout/cin也兼容C IO。结构体C的struct只有成员变量C的struct可以写成员函数等同于class默认public。函数C不支持函数重载、默认参数C支持重载、默认参数、引用。内存管理C用malloc/freeC新增new/delete会自动调用构造/析构函数。命名空间C没有namespaceC有namespace解决命名冲突。异常C没有标准异常机制C支持try-catch-throw。编译层面C.c文件编译器gcc编译为C风格目标代码。C.cpp文件编译器gC名字会名字修饰(name mangling)支持重载C函数不会修饰所以C调用C库需要extern C。二、代码示例示例1结构体对比// C代码 structstruct ImageInfo{int width;int height;};// C不能在struct内部写函数// C structstruct ImageInfo{int width;int height;// C结构体可以包含成员函数void setSize(int w, int h){width w;height h;}};示例2内存分配对比// Cstruct ImageInfo* img (struct ImageInfo*)malloc(sizeof(struct ImageInfo));free(img);// CImageInfo* img new ImageInfo();delete img;示例3extern C 影像开发高频#ifdef __cplusplusextern C {#endif// 这段函数编译成C风格符号C代码可以直接给C层调用void setSensorExposure(int exp);#ifdef __cplusplus}#endif三、手机影像算法集成 实际工作场景你做Camera HAL / 影像算法集成时这个知识点非常常用Camera HAL 框架底层大量代码是 C语言Android原生BSP、驱动接口都是C追求精简、可控内存没有RTTI、异常这些额外开销。上层算法模块、算法封装、算法管理类一般用 C用类封装 Sensor、ISP、CaptureSession把曝光、白平衡、降噪算法封装成对象代码更容易维护。使用命名空间隔离不同厂商算法模块避免函数名冲突。函数重载比如重载setParam支持传入int、结构体等不同参数。跨层交互痛点HAL的C接口 和 C算法模块互相调用必须用extern C否则C名字修饰会导致找不到符号so库加载失败影像进程crash。选型取舍底层硬件交互、性能极致要求优先C二进制体积小无额外开销。算法业务逻辑、多模块管理C面向对象便于维护复杂影像管线。面试高频坑C兼容C但不是完全兼容C没有引用、类malloc不会调用构造函数new会。✅ 面试口述精简版C是面向过程语言适合底层驱动、HAL这类轻量代码C基于C扩展支持面向对象、泛型编程增加类、引用、重载、new/delete、namespace。C没有名字修饰C存在名字修饰C调用C库要用extern C。在手机影像开发中Camera HAL底层多为C上层算法模块常用C两者经常混编重点要处理好跨语言符号兼容问题。
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

AWS VPC架构实战:CIDR规划、Subnet分层与跨Region互联 2026/9/29 11:05:40

AWS VPC架构实战:CIDR规划、Subnet分层与跨Region互联

简介:本资源是一份面向云计算从业者、架构师及技术决策者的AWS公有云架构深度解析课件,聚焦全球基础设施布局、高可用设计原理与企业级合规能力。内容涵盖AWS全球13个Region地理分布、多可用区(AZ)灾备机制、VPC网络架构、骨干网D…

阅读更多 →
Docker端口映射 -p参数详解:从原理到排障,避开90%的坑 2026/9/29 11:05:39

Docker端口映射 -p参数详解:从原理到排障,避开90%的坑

Docker 端口映射别瞎学了!90% 新手都栽在 -p 参数上,服务死活访问不到?看完少走 90% 弯路说实话,Docker 这个坑我见过太多次了。很多新手在容器里跑起了 Nginx、MySQL、Redis,docker ps一看,端口映射那一列…

阅读更多 →
Sanders壳理论+切比雪夫法求解任意边界圆柱壳自由振动 2026/9/29 11:05:33

Sanders壳理论+切比雪夫法求解任意边界圆柱壳自由振动

简介:本资源是一份面向结构动力学研究者与工程技术人员的圆柱壳自由振动分析实践指南,聚焦Sanders壳体理论在任意边界条件下的建模与求解,解决传统方法难以统一处理复杂边界(如弹性约束、混合支承)的痛点。包内含1个91…

阅读更多 →
双目视觉SLAM与三维建图:尺度恢复、精度控制与多模态融合实战 2026/9/29 11:05:00

双目视觉SLAM与三维建图:尺度恢复、精度控制与多模态融合实战

1. 双目视觉SLAM的底层逻辑与方案选型双目相机在SLAM和三维建图里到底扮演什么角色,这个问题如果只停留在“能测深度”的层面,很多工程细节就会踩坑。我从最早用Kinect做RGB-D SLAM,到后来切到双目方案做室外机器人,再到最近折腾双…

阅读更多 →
Redis 流式操作配 TaoToken:settings.json 骨架与验证动作 2026/9/29 11:04:53

Redis 流式操作配 TaoToken:settings.json 骨架与验证动作

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
Claude Code 安装与使用(Windows11):TaoToken 统一 Key 配置与验证 2026/9/29 11:04:52

Claude Code 安装与使用(Windows11):TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉