C 是什么样的语言?

C 是什么样的语言?
这个问题不要急于寻找问题的答案,而是应该先去考虑当前的问题是什么?

C语言其实就是一种工具,而且确实也是为作为工具而开发的,所以就具有以下特点
1>为了解决眼前问题,由开发现场的人发明的,
2>虽然使用方便,
3>但看上去不怎么顺眼,
4>如果不熟悉的人糊里糊涂地使用了它,难免会带来“悲剧”的语言。

C的发展历程
1978 年出版了被称为 C 语言宝典的 The C Programming Language 一书

当然作为一门“古老的编程语言”,不完备和不统一的语法使C语言一直被诟病

Rationale 中有“keep the spirit of C”(保持 C 的精神) 一节,关于“C 的精神”是这样介绍的:
1. 请信任程序员(Trust the programmer)
2. 不要阻止程序员去做需要做的工作(Don't prevent the programmer from
doing what needs to be done)
3. 保持语言的小巧和简单(Keep the language small and simple)
4. 为每一种操作只提供一种方法(Provide only way to do an operation)
5. 就算不能保证可移植性,也要追求运行效率(Make it fast, even if it is not guaranteed to be portable)

C 是抱着“程序员万能”的理念设计出来的。在 C 的设计中,优先考虑的是

如何才能简单地实现编译器(而不是让使用 C 的人们能够简单地编程)
如何才能让程序员写出能够生成高效率执行代码的程序(而不是考虑优化编译器,使编译器生成高效率的执行代码)

C是只能使用标量的语言

比如为什么 if (str == "abc") 是错误的,因为字符串就是char类型的数组,不是标量,也就不可以用==比较如今的 C(ANSI C) 通过以下几个追加的功能,已经能够让我们整合地使用聚合类型了。

结构体的一次性赋值
将结构体作为函数参数值传递
将结构体作为函数返回值返回
auto 变量的初始化

posted @ 2019-10-18 22:00  CodeAllen  阅读(510)  评论(0编辑  收藏  举报