搜文章
推荐 原创 视频 Java开发 iOS开发 前端开发 JavaScript开发 Android开发 PHP开发 数据库 开发工具 Python开发 Kotlin开发 Ruby开发 .NET开发 服务器运维 开放平台 架构师 大数据 云计算 人工智能 开发语言 其它开发
Lambda在线 > 计算机学习之家 > 知乎高论问题:C++为什么不能取代C语言?

知乎高论问题:C++为什么不能取代C语言?

计算机学习之家 2020-05-26


This browser does not support music or audio playback. Please play it in WeChat or another browser. 知乎高论问题:C++为什么不能取代C语言?
知乎高论问题:C++为什么不能取代C语言?

有两天没有和大家分享了

我们栏目一直在坚持

让大家学习C/C++

这两种编程语言我们出过不少系列

今天我们就结合一些网上观点

来谈谈C与C++的关系

文末有惊喜

知乎高论问题:C++为什么不能取代C语言?


知乎高论问题
——

C++为什么不能替代C语言?

最近小编在知乎上看到这样一个问题:

知乎高论问题:C++为什么不能取代C语言?

包括小编周边许多计算机专业的同学也认为,C++和C语言不就是差不多的吗,而且C++的功能那么丰厚,为什么不直接替代掉C语言呢?
C语言是一不少同学入门编程的语言,C的思维是彻底静态的,一个优秀的C工程师脑海里有一张内存地图,哪块到哪儿的1与0代表什么东西。
总得来说,C与C++的差别还说挺多的。
打个简单的比方c++的寻址与c语言就是不一样的。c语言的malloc与c++的new是不一样的。除了大家都知道的new会构造函数,new有安全检查之类的。
c++新分配的内存都加了个偏移量,在寻址上要多来最少两条指令,而malloc是紧致地放在堆里。包括c++的数组越界检查,这东西有必要存在吗?c语言工程师早就在纸上把内存分配算的紧紧的。
比方说一个c++的类,用c语言如何实现呢?大家都想到struct结构体,实际上我认识的大神都是用数组实现类的。
实际上,C++中的Class和C语言的结构体差别是很大的。
知乎高论问题:C++为什么不能取代C语言?

我个人认为c语言除了在运行效率上优于c++以外,好像也没什么优点。有人说c++语法复杂,c++是我学过的语法最复杂的语言。但是c++复杂的语法,什么模板,新特性,类的复杂应用,你大可以不用。

c语言的优点还是主要在效率上。

必须使用C的场景主要都是涉及到二进制连接或者跨语言调用,因为C的调用规范通常兼容或部分兼容其他许多语言和组件,比如C++, CPython, Node, Linux内核等。

知友@皮皮关:

C的功能C++几乎都有,但不是全都有。现代的C语言并非C++的子集。

有没有可能创造出一种语言,集所有语言的特点于一身呢?

几乎不可能设计出集多种语言优点于一身的语言。

很难正面证明这一点,建议反向思考:假如设计出这样一种集大成的语言,以现代人类的知识水平来说,这种语言一定会引入众多语言的缺点,再加上一些新的缺点。

我们很难设计出一款多功能锤子,能够集多种功能于一身的同时,还在锤子的本职工作上比普通锤子更好。

知乎高论问题:C++为什么不能取代C语言?


(一把普普通通的锤子,如果谁能做出革命性的改进,一定是科学技术领域和设计领域的巨大进步。)
这里可以做一个笼统的总结:任何通用性工具,在针对某个特定用途或特定问题的时候,一定不会比专用工具更好。
换句话说,专用工具可以针对某一个特定用途进行优化,优化后的效果不可能弱于通用型工具。
希望大家能够有更多的思考!
知乎高论问题:C++为什么不能取代C语言?
知乎高论问题:C++为什么不能取代C语言?


今天内容到此结束
以上内容有问题可以私信小编
欢迎大家添加微信号:“小南教育”
计算机等级考试资料9折起售!

版权声明:本站内容全部来自于腾讯微信公众号,属第三方自助推荐收录。《知乎高论问题:C++为什么不能取代C语言?》的版权归原作者「计算机学习之家」所有,文章言论观点不代表Lambda在线的观点, Lambda在线不承担任何法律责任。如需删除可联系QQ:516101458

文章来源: 阅读原文

相关阅读

关注计算机学习之家微信公众号

计算机学习之家微信公众号:a1076077941

计算机学习之家

手机扫描上方二维码即可关注计算机学习之家微信公众号

计算机学习之家最新文章

精品公众号随机推荐