提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
前言
提示:开篇不讲语法,但对编程不是死记硬背,更多的是规则的领悟,既然是领悟,了解它的背景知识,是很有必要的
提示:以下是本篇文章正文内容,下面案例可供参考
一、C语言是什么?
C语言是计算机科学理论体系的一部分,目的是让CPU运行你写的程序。最终C语言源程序要变成可执行程序。
C语言是面向过程的编程语言,C适合完成自顶向下、结构化编程和模块化设计。它更着重算法和语法的运用,比如设计不同的函数。一个C程序模块=数据结构+算法。
C语言有一堆语法,究其根本就是“一堆规则”,正如《C Primer Plus》Page 6所说,C语言语法要保证,针对目标计算机来定义最合适的某种特定操作,语言无歧义,且保证效率。
二、使用C语言编程
1.编译的过程
为什么需要编译器:编程语法很多,都有自己的特殊用途。编程语言可以划分为三类:
(1)机器语言;(2)汇编语言;(3)高级语言。
机器语言是二进制代码。汇编语言和高级语言需要转换成机器语言,cpu才能执行。汇编和高级语言都有标识符,汇编的每一个命令对应实际操作的一个微小动作。
C程序经过编译生成机器代码(目标文件),再通过连接器合并机器码,即将目标文件、系统的标准启动代码和库文件来生成可执行文件。有的编译器会自动启动连接器。
最终,C语言编程的过程中,我们可能接触以下文件
- 头文件,函数声明和变量定义
- 源文件,主函数和功能函数
- 库文件,链接器会抽出源文件所引用的函数的机器码,将其和源文件编译后的目标文件和启动代码合成为一个可执行文件
- 启动代码。程序和操作系统的接口
C程序的实现过程可以使用gcc来进行实验,链接如下:https://blog.csdn.net/qq_37924645/article/details/70147970
2.编程的基本要求
一门语言都需要关注的内容如下:
- C语言语法和标准(C语言标准由C90,C99,C11)
- 编译器(gcc,clang等)(并不是所有编译器都支持C99,C11)
- 操作系统:编译的细节取决于操作系统,且最终程序的启动文件就是程序与操作系统的接口。有的语言在不同操作系统上不能直接移植
- CPU:CPU都有自己对应的汇编指令集,编译器需要先把源文件翻译成汇编文件,最后翻译成机器码
其他细节
- 描述算法有算法流程图和N-S图。采用不同的描述方式,代表不同的观察角度。因为人的视角是狭隘的,有时候只能看到事物的冰山一角。
- 标识符要用匈牙利命名法,提高代码可读性。结构是属性+数据类型+对象名。如pfMAX,表示一个叫MAX的指向float型数据的指针。
- 标识符与内存地址是相关的,《C Primer Plus》Page 24
- 操作系统和库文件常用_和两个下划线命名的标识符,所以源文件的标识符要避免下划线开头,产生冲突。
编译、链接概念的参考链接:http://c.biancheng.net/view/1736.html
C语言参考书建议是:
《Linux编程一站式学习》,作者宋劲杉;
《C Primer Plus》