原创 为什么C++比C要麻烦?听听程序员怎么说(转)

2019-12-16 16:21 3839 33 12 分类: MCU/ 嵌入式 文集: 编程C语言

听过一个笑话,程序员们互相聊天,程序员A问到:为什么C++比C麻烦那么多?”

程序员B回答道:“有了对象能不麻烦么。

同样衍生出来的还有一个小故事:情人节,有人看到C一个人喝酒,便问:你的好哥们C++、Java、Python他们呢?C说:都过情人节去了。问:你为什么不过呢?C说:因为我没有对象。

计算机行业的人都知道C、C++、C#,但对很多想要入行的人来说可能就有点迷茫了,就好像不知道java和JavaScript的关系一样,面对这个多个C,如何选择成为了他们的一个小问题。

先简单的说一下三个语言

C语言是一种结构化编程语言。 它层次清晰,便于按模块化方式组织程序,易于调试和维护。C语言的表现能力和处理能力极强。具有丰富的运算符和数据类型,便于实现各类复杂的数据结 构。而且还可以直接访问内存的物理地址,进行位(bit)一级的操作。

c语言的最大的特点就是效率高、可移植性强,C语言可以说是一种入门语言,只要精通了一种语言,则一通百通。

C++,如果说c语言面对的是过程,那么C++面对的就是对象,同样是侧重于计算机的底层操作,但是在C语言的基础上加了很多功能,所以被称作C加加,当然难度和复杂程度也有所增加,如图形处理,C++ 对文件的组织是以工程,各文件分类明确更加高效

C#,则是在C++的基础上再一次改进后的编程语言,语法类似Java但是难度却有所减少,侧重于网络和数据库编程。C# 是基于 IL 中间语言和 .NET Framework CLR 的,在可移植性,可维护性 和强壮性都比 C++ 有很大的改进

从继承关系上来看的话,是C->C++->C# C++完全向C兼容,C程序几乎不用修改即可在C++的编译器上运行。C++也称为带类的C,在C的基础上增加了许多面向对象的概念,虽然是C的扩展,但这并不意味着C功能不如C++,因为现在最牛的操作系统是用C写出来的。

你可能会遇到的问题:

问:C++能实现C所不能的功能吗? 答:至少我还没有发现

问:学了C再学C++又要重头开始吗? 答:不,C++下可以实现C语言的一切功能

学完了C再学C++是不是很容易? 答:那要看你是不是真正的学完了C语言,我从C到C++就一个星期的睡觉前的时间看两眼书,然后就大彻大悟。

所以这里也跟大家说一下,要想学好C++最好还是先学好C;如果要学好C++,建议初学者最好别在如VC,BCB平台下写程序,那种自动化的代码生成,花花绿绿的界面,会让你手足无措。最好先找一片空地(unix,dos),从头做起,写几个大点的程序,数个回合,再到VC,BCB下看看,你会轻松得很。在我看来,学好C/C++是成为VC,BCB高手的必由之路。



PARTNER CONTENT

文章评论5条评论)

登录后参与讨论

allen_zhan 2020-1-4 15:52

语言的发展趋势是什么? 当然是高度抽象化, 高度 AI 化.
从这个趋势上说, 从 C -> C++ 是语言发展的必然.
从客观世界, 初步提炼某种共性的个体, 整合为对象类型, 进行属性与模式封装, 当然比早期的C语言的过程式/函数式的编程模式更抽象.

而今天新的语言的发展, 从逻辑抽象上, 或许则倾向异步模型, 并发设计, 函数式设计.
而在工程便利上, 也包括基于云平台的开源 package 的支持,

这或者有 Python, Go, Node 作为典型的发展代表.
但无论如何, C/C++ 都不会被淘汰, 过去 40年, 无数案例已经告诉我们, 他们总有适合的一席之地.

allen_zhan 2020-1-4 15:52

语言的发展趋势是什么? 当然是高度抽象化, 高度 AI 化.
从这个趋势上说, 从 C -> C++ 是语言发展的必然.
从客观世界, 初步提炼某种共性的个体, 整合为对象类型, 进行属性与模式封装, 当然比早期的C语言的过程式/函数式的编程模式更抽象.

而今天新的语言的发展, 从逻辑抽象上, 或许则倾向异步模型, 并发设计, 函数式设计.
而在工程便利上, 也包括基于云平台的开源 package 的支持,

这或者有 Python, Go, Node 作为典型的发展代表.
但无论如何, C/C++ 都不会被淘汰, 过去 40年, 无数案例已经告诉我们, 他们总有适合的一席之地.

minicaihong 2019-12-21 14:16

新写的不错,学习了

nufuvcgx 2019-12-19 10:58

百度一下BCB平台,博主是币圈中人?

curton 2019-12-18 16:14

一直觉得C非常的难
相关推荐阅读
我要评论
5
33
关闭 站长推荐上一条 /3 下一条