大桥未久作品 蓝因子 我是先学C讲话照旧先学C++,实不相瞒,鱼和熊掌可兼得!
这是最近一周期间几个读者小伙伴所提的问题大桥未久作品,我顺遂截了两个图。
成人电影网实不相瞒,这类问题之前也往往看到。
每次碰到这种问题,看起来很浅薄,然则打字一时半会还真说不清,想想今天周末了,写一篇著作来和谐聊聊吧,若是小伙伴们有不同宗旨,也宽待品评指正,指摘区见。
C 和 C++ 到底是什么关系?
最初 C++ 和 C 讲话底本就是两种 不同的 编程讲话,但 C++ 照实是对 C 讲话的推论和蔓延,而且对 C 讲话提供后向兼容的才智。对于有些东说念主说的 C++ 富足就包含了 C 讲话的说法照旧有点别扭的。
C++ 一运行被本贾尼·斯特劳斯特卢普(Bjarne Stroustrup)发明时,伊始被称为 “C with Classes” ,即「带类的 C 」。很明显它是在 C 讲话的基础上推论了类class等面向对象的特质和机制。然则其后经过一步步矫正和许屡次演变(如下图所示),最终才形成了现如今这个支捏一系列关键特质的弘远编程讲话。
就像经典册本《Effective C++》一开首就说的,现如今咱们提到 C++ ,王人应该视其为一个弘远的「 讲话联邦 」,最起码包含如下几个进犯的构成部分:
✪ 面向进程编程
✪ 面向对象编程
✪ 泛型编程
✪ 元编程
✪ 函数式编程
✪ STL范例库
这其中的第一部分「面向进程编程」,恰是 C++ 提供的向后兼容 C 讲话的部分,是以你能看到市面上在售的大部分讲 C++ 编程的书,一运行前几个章节基本王人是在讲「面向进程编程」的实践,包括但不限于:数据类型、变量、运算符、抒发式、语句、判断、轮回、函数、指针等等这些实践。
不学 C 讲话能径直学 C++ 吗?
照旧像前边所说, C++ 编程讲话的第一大进犯构成部分就是「面向进程编程」,而这恰是 C讲话老年老的边界。即使莫得学过C讲话,一上来就径直学习 C++ 的小伙伴,应该也难逃『面向进程』这一部分的实践。因为市面上在售的大部分讲 C++ 编程的书,运行的章节王人在讲「面向进程编程」的实践。
从表面上来说,学 C++ 前 并不一定 非得学 C 讲话,然则有 C 讲话基础底细再去学 C++ 经常更具上风,最起码「面向进程编程」这一部天职容大概如臂使指。
然则缺憾的是,即使是《C++ Primer》这种 700 多页厚的巨擘 C++ 册本,开首也惟有很少一部分在讲「面向进程编程」,是以对于面向进程这一部分的申报是细目莫得有益讲 C 讲话的册本明白得风雅和全面的,否则也不会有有益讲指针干系的《C和指针》这类册本的出现了。
是以个东说念主提出是在学 C++ 之前, C 讲话的基础照旧尽量要夯实,细目是有匡助的。
C 学得好的,学 C++ 是否更具上风?
是的。
最起码学 C++ 时,内部的「面向进程」这一部天职容不错说如臂使指了。
C++ 能替代 C 讲话吗?
既然 C++ 这样刚劲,包含这样多模块和范式,而且也险些包含了 C 讲话面向进程这一部分的实践,那为啥还要学 C 讲话呢?王人径直学习 C++ 它不香嘛?
是的, C++ 很刚劲没错,但那些刚劲的范式和机制自己带来的 包袱 就不轻,也照实给学习者酿成了不小的背负,致使劝退了许多东说念主。
而反不雅 C 讲话, C 讲话自己就是一个把 才智 、 性能 、 恶果 和 学习本钱 衡量得相称极致的一种编程讲话,以至于大学阶段必开的阵势筹商课程里基本王人有 C 讲话的身影。
而且 C 讲话的愚弄边界颠倒平时,上到操作系统底层的原生接口,下到普通的愚弄层成立, C 讲话王人有着不小的功劳。以至于这样多年来,在 Tiobe 编程讲话名次榜里, C 讲话王人是居高位不下。
而且 2020 开年 C讲话重回巅峰王座 ,一举夺得「 2019 年度编程讲话」。天然这仅仅一个看起来很枯燥的排名,但多几许少能讲解一些事情。
是以岂论是往时,当今,致使是畴昔,近 50 岁的 C 讲话宿将军已经永不为奴。
惟有 C++ 这种面向对象的讲话才合乎大型方法吗?
C++ 的出现实在是为了更便捷地成立大型愚弄阵势,毕竟面向对象编程里的许多进犯念念想和机制王人对大型方法和复杂系统所条件的方法工程化、代码复用性/推广性/可珍摄性等提供了刚劲的赈济。
然则 摆在咫尺的事实 告诉咱们,即就是 C 讲话,也照样不错构建出极其复杂的系统和软件。上到 Linux 这种绝代伟大的操作系统内核,小到被各个公司重度依赖的 Redis 、 Nginx 等开源软件或框架,王人是 C 讲话的代表作品。
是以随机候咱们 不得不承认的是 ,人人所说的详细才智更多的是看写这个阵势的东说念主,而并非编程讲话自己。
小 结
好啦,扯得有点多了,转头一下就是:
C 讲话和 C++ 是两个不同的编程讲话,只不外实践上有一定的叠加;
C 讲话是一门很刚劲的编程讲话,我以为有契机照旧要学一下;
一般来说,有了 C 讲话的基础,上手 C++ 也会更快;
C++ 和 C 各有各的接纳研讨和愚弄场景,并莫得谁更好一说,学不学看我方的趣味和自身期间发展的考量
册本推选
临了聊一聊学习 C 讲话和 C++ 的册本吧。
个东说念主以为若是想系统学习这两门讲话,最佳照旧得看一下经典的册本。
对于 C 讲话学习册本,最最巨擘确天然是 C 讲话的发明者 Dennis M. Ritchie 所著的《The C Programming Language》(它也有汉文版的)大桥未久作品,除此除外《C Primer Plus》也很系统全面。指针部分强化不错系统阅读《C和指针》。