0X02 C语言概述
一个C程序是由一个或者多个函数组成,并必须只有一个main()函数。我建议不要使用void main的形式,同建议用 int main 然后return 0;的形式,至于为什么要这样做,我也不知道。
一个文件内、一个函数内、一个控制语句内、一对花括号内,都可以称为一个代码块。
声明与定义
int num;这就是声明,而且是定义性声明。
声明(declaration)指定了一个变量的标识符,用来描述变量的类型,是类型还是对象,或者函数等。
定义(defining)是对声明的实现或者实例化。
声明有两种情况:需要建立存储空间的 和 不需要建立存储空间的 ,前者是 定义性声明(defining declaration),后者是 引用性声明(referncing declaration)
广义的来看,声明包含定义,但不是所有的声明都是定义。一般情况下,把建立存储空间的声明称之为“定义”,而把不需要建立存储空间称之为“声明”
好像还不大明白?没关系,只需知道定义和声明不大一样就行了
在C语言中,所有变量在使用前必须定义。
函数原型是声明的一种形式
声明变量的好处:
- 把所有变量放在一起,可以让读者更容易掌握程序的内容(如果名字不能表达清楚,可以用注释加以解释,这也是良好的编程技巧之一)
- 在开始编程之前,考虑一下需要声明的变量会促使自己做一些计划工作
- 可以帮助避免变量名拼写错误,比如在后面代码中写错了,编译器会帮你找到错误所在。
程序可读性技巧
- 选择有意义的变量名和使用注释
- 使用空行分隔一个函数的概念上的多部分。比如分隔定义部分和动作部分
- 每个语句使用一行,for循环括号内的除外。
- 在程序开始处使用注释,说明了文件的名称和程序的目的。
调试
语法错误:是指把正确的C符号放在了错误的位置
编译器的另一个毛病是发现错误的位置比真正的错误位置要滞后一行。
语义错误:就是意思上的错误。语法是正确的,但输出的结果却不是想要的,一般是在代码中出现了语义错误
在程序的几个关键点出加上额外的printf语句以监视所选变量的值可以帮助查找语义错误。
程序状态:通过手工方式一步一步跟踪程序,并记录每个变量,这样就就可以监视程序状态。
检查程序状态还可以用调试器,有静态调试和动态调试。