世界这么大,我选C语言

C语言还用再学吗?嵌入式工程师可是每天都在用它,大家早就烂熟于心,脱离语言这个层面了”。

这样说不无道理,这门古老的语言以其简单的语法、自由的形式的而著称。

使用C完成工作并不会造成太大困扰,所以很少有人会回头再仔细看看它。但在现实中却经常会有一些令人抓狂的bug,最终发现竟是语法使用错误造成的,而作者不乏老程序员。

仔细想想,其实每个人对C都有些含糊不清的地方,C好像又变得复杂起来。

但事实却不是这样,C语言依然是简洁的,它的语法只需几页纸便可讲清。

回想起来,其实是我们学得太过匆忙、太过功利,记忆了一堆零碎的语法便开始开发生涯了。

世界这么大,我选C语言

追问本质的学习被很多人看作是不必要、过于学究的。

而肤浅学习的人往往是以修补各种漏洞、缺陷作为自己的主要工作,而且乐此不彼。

我没有能力和精力去彻底弄懂C的本质,但在工作了几年后,我想重新认识一下C,对含混之处作一些澄清。

当然对熟悉C的人来说,常规的应用式学习是没有意义的,我们要深入本质,去看看C的本来面貌

C语言高效,易移植,功能强大

而在形式上它又是自由的,留了更多的责任给编译器和开发者。

对一些实现细节,规范不作具体要求,而是由编译器根据需要自行决定。

世界这么大,我选C语言

这一类细节可以分为以下三类:

(1)基于实现(implementation defined)。要求编译器文档给出明确定义,使用者对其无歧义。

(2)不作说明(unspecified)。编译器可以选择自己的处理方式,且该方式可能会变,不在文档中作定义,使用者不可作假设。

(3)不作定义(undefined)。编译器可以选择不去处理这些case,所以可能出现任何结果,应避免使用。

世界这么大,我选C语言

学习从来不是一个人的事情,要有个相互监督的伙伴,工作需要学习C/C++或者有兴趣学习C/C++的伙伴可以加我Q_2208165112。一起学习,一起进步。还有免费学习资料可以给各位伙伴

C++复杂凌乱的语法深受诟病,但C偶尔也会从C++引进一些好的语法,而且还会另外作一些扩充。C规范可分为三个阶段

(1)规范形成前(旧C、old style C)。基本以第一版的《The C Programming Language》为规范,C语言的基本面貌已经确定,与我们现在看到的差别不大。由于历史原因,仍有编译器只支持旧C(我第一个东家就是)。

(2)旧规范(C89或C90)。近乎完美的版本,也就是我们现在基本看到的C,是目前支持得最好且应用最广泛的版本。《The C Programming Language》也随即出了第二版,至今未更新。

(3)

新规范(C99和C11)。时隔20年后,C从各大编译器吸取营养,作了一些不错的扩展。但平时使用得并不多,而且还没有得到完全的支持。其中C99变化较大,C11更多的是对C99的调整。

世界这么大,我选C语言


分享到:


相關文章: