程序员

注册

 

发新话题 回复该主题

现在的C语言仍值得程序员学习吗CSDN [复制链接]

1#
SEM百度竞价招聘求职QQ群 http://liangssw.com/bozhu/13192.html

时至今日,技术界的各种新编程语言层出不穷,提供的功能特性也是应有尽有,那么古老的C语言又是凭什么屹立不倒?是否仍值得程序员学习?

作者

肖楠

译者

弯月,责编

郭芮

C是一种系统编程语言,不仅有些年头了,而且名声还不太好,比如未定义的行为、内存相关的Bug等。特别是在今时今日Go和Rust迅速走红的情况下,C似乎已渐渐被人遗忘了。尽管如此,恕我直言,C仍然值得花时间学习。

无论你是C语言的编程新手还是经验丰富的程序员,我强烈建立你读一读《现代C语言》(ModernC)这本书。通过本书,你就会发现C语言也在悄悄地进化,如今这门语言也不像你想象的那么原始。例如,C11定义了类似于C++的标准线程API,这个功能让C看起来更像是一种“现代”语言,而不是过时的语言。你可以通过本书从新的角度来审视C语言。

无论你是系统语言程序员、运维人员、性能工程师还是身处其他职位,对操作系统的了解越多,就能越好地完成工作。

以所有流行的类Unix操作系统为例,从内核到命令行工具,几乎都用C语言实现。研究相关的源代码可以让你深入理解内部操作系统。例如,我知道有一个taskset命令可以绑定到一个专用CPU进程,但我想知道其背后的实现方法,所以我阅读了源代码。然后,我得知了两个真相:

有一个“/proc/%pid/task”文件夹,用于记录进程的线程信息;taskset实际上是通过调用sched_setaffinity和sched_getaffinityAPI来完成任务的。最后,因为C是靠近底层的语言,所以在某些情况下性能至关重要时,你可以利用C来编写高性能的代码,充分利用CPU。

虽然我列举了很多我认为你应该学习C的理由,但也许你也有充分的借口拒绝考虑C语言。没关系。但是,如果你想尝试C语言,那么首先不要害怕,勇敢地迈出第一步。尽管编写C语言代码很容易出错,但是你只需要确保你编写的内容是正确,不使用未定义的行为,那就没问题。

原文:

分享 转发
TOP
发新话题 回复该主题