一、C语言的起源
1972年,贝尔实验室的Ritch和Ken在开发UNIX操作系统时设计了C语言。 C语言最初被设计为程序员的编程工具,其主要目标是成为一种有用的语言。
2. C语言特点 2.1 设计特点
C是一种流行的语言,结合了计算机科学理论和实践的控制特点。 许多学院和大学将其作为学习计算机编程的第一语言。 C语言的设计理念可以让用户轻松完成自上而下的规划、结构化编程和模块化设计。因此,用C语言编写的程序更容易理解、更可靠
2.2 效率
C语言具有通常只有汇编语言才有的微调控制能力。 程序可以根据具体情况进行微调,以获得最大的运行速度或最有效的内存利用。
2.3 便携性
所谓可移植性,是指在一个系统中编写的程序,只需稍加修改(如更改主程序头文件中的几项)或无需修改,就可以在其他系统上运行。 由于有许多C编译器运行在不同的系统上,因此C语言在可移植性方面成为了领先者。 但需要注意的是,为特殊硬件设备或操作系统(例如或Mac OS)的特殊功能编写的部分程序通常是不可移植的。
2.4 强大、灵活
例如,
UNIX操作系统大多是用C语言编写的。 UNIX 通常附带一个 C 编译器作为软件包的一部分。 许多语言(如 Perl、LISP)的编译器和解释器都是用 C 编写的。C 程序可以用来解决物理和工程中的问题,甚至可以用来为电影创建动画特效。 2.5 缺点
例如,
编程错误很难被发现。 例如,使用指针。 存在大量的运算符,这可能会导致代码神秘。 因此,只有C语言有一年一度的混淆代码竞赛(IOCCC,The C Code)。 3.C语言的应用范围
早在20世纪80年代,C语言就已经成为UNIX系统中使用的主流语言。 此后,C语言的应用范围扩大到PC(主要体现在操作系统和应用程序)和超级计算机。
尽管多年来C++和Java已经变得非常流行,但C语言仍然是软件行业的核心技能。 特别是C语言已经成为嵌入式系统编程的流行语言。 汽车、相机、音响和其他现代设备中越来越多的微处理器都是用 C 语言编程的。
题外话:
人工智能的热潮让C/C++和Java成为最流行的三种语言。 据称,已计划纳入高考内容。
不过可以肯定的是,学好C语言是没有坏处的。 在2017年12月的TIOBE排名中,Java、C、C++、C#分别位列前五。 2017年,人工智能大热,C语言有望成为年度最佳“候选人”。
4.C语言标准
关于C语言标准,有机会我会详细研究和总结。
5. 使用C语言的7个步骤 5.1 第1步:需求分析
这一步需要对程序有清晰的思路。 首先明确要做什么、需要什么信息、要进行什么计算和控制、要反馈什么结果。
该步骤不涉及任何计算机语言,需要用术语来描述。
5.2 第二步:详细设计
在这一步中,你需要考虑如何使用程序来实现需求。 例如,用户界面应该是什么样子? 目标用户是谁? 程序架构应该是什么样的? 实施这个计划需要多长时间? 如何表示数据? 如何处理数据?
这一步涉及到的内容都有专门的术语和描述工具,可以参考软件工程相关的书籍
5.3 第三步:编写代码
这一步才是真正用到计算机语言的地方,即将你设计的程序翻译成C语言。
5.4 第四步:编译
编译器是将源代码转换为可执行代码的程序。 可执行代码是用机器语言表达的代码。 除了将C代码翻译成特定的机器语言之外,C编译器还将源代码与C库代码合并到最终程序中。 (更准确地说,应该是链接函数库的链接器。但在大多数系统中,编译器运行链接器)。 最后生成用户可以运行的可执行文件。
此外,编译器还会检查C语言程序是否有效。 如果发现错误,则无法生成可执行文件,并报错。 理解特定编译器报告的错误或警告消息是程序员必须掌握的技能。
5.5 运行程序
虽然,该程序可以在命令提示符模式、UNIX 终端模式和 Linux 终端模式下运行。 不过,现在更常用的是在IDE(集成开发环境)中编辑、编译和执行C程序。
5.6 测试和调试程序
测试分为黑盒测试和白盒测试。 黑盒测试一般是直接运行程序看是否能达到预期的功能。 白盒测试可以更深层次地检测程序中包含的问题,需要较高的技术水平。
查找并修复程序的过程称为调试。 你会遇到各种形式的BUG(八王子)。 当你一步一步学习的时候,你可能犯错误的地方就会越来越多。 不经意的小问题可能会导致程序崩溃。
因此,需要养成良好的编程习惯,以提高代码的可读性和可维护性。
5.7 维护和修改代码
这一步通常被忽视。 仅仅因为一个程序有效,并不意味着它是完美的。 随着时间的推移或者运行环境的变化,问题会得到更好的解决,程序也会需要更多的功能。 也许,维护和修改代码的工作量远远超过了前面的步骤。
源码和资料都在上面的编程交流群里。 可以加群一起讨论。