1. 程序设计的基本流程
2. 编辑与编译
3. 宏与常量
-
宏定义
#define 指令:预处理命令
例如:#define PI 3.14
一旦定义,可以代替常量使用
宏定义不是常量
程序中应优先使用常量而不是宏 -
目的与意义
增强程序可读性
使用有意义的名字命名
增强程序的可维护性
将值定义为符号常量,则程序中仅需修改一次 -
赋值语句的简写形式
加赋:x += a 等价于 x = x + a
减赋:x -= a 等价于 x = x - a
乘赋:x *= a 等价于 x *= x * a
除赋:x /= a 等价于 x = x / a
除法作用于整数上时,结果也为整数
余赋:x %= a 等价于 x = x % a
%: 两个整数进行除法,结果为余数
特别说明:
x *= a + b 等价于 x = x * (a + b)
4.源代码排版
递进层次应使用左缩进格式
每行代码不能过长,不超过80个字符
函数代码不超过60行
使用空行区分不同功能代码
复合语句书写格式要统一
除非特别必要,否则不要在一行上书写多条语句
命名规范要一致
无论采用什么标准,都一定要一直按照该标准执行
5.枚举类型
枚举类型的声明
格式:enum 枚举名 {元素名1,元素名2,…, 元素名n};
例如:enum MONTH{JAN, FEB, MAR, APR, MAY, JUN, JUL, AUG, SEP, OCT, NOV, DEC};
枚举类型声明中的元素为枚举文字,不是变量
枚举类型变量的定义
例如: MONTH month;
month = JAN;
枚举类型的意义:
将多个文字组织在一起,表达从属于特定类型的性质,取代魔数,是源代码更易理解
6.用户自定义类型
自定义类型的格式
格式:typedef 原类型标识 新类型名
例如:typedef int DWORD;
例如:typedef enum {SUN, MON, TUE, WED, THU, FRI, SAT} WEEKDAY;
自定义类型的性质
新类型与原类型相同,并未产生新类型,重新命名的自定义类型使程序更易理解
若整数可以用于表示两类不同数据对象,使用自定义类型可以区分它们,自定义类型不是简单的类型替换,虽然他们确实等同。
7.函数中的值传递机制
- 形式参数在函数调用时才分配存储空间,并接受实际参数的值
- 实际参数可以为复杂的表达式,在函数调用前获得计算
- 形式参数与实际参数可同名,也可不同名
- 参数较多时,实际参数值逐一赋值,他们必须保持数目、类型、顺序的一致
- 值的复制过程是单向不可逆的,函数内部对形式参数值的修改不会反映到实际参数中去
- 函数参数一般为函数输入集的一部分,函数输出集一般使用返回值表示,只有使用特殊的手段才可以将函数参数作为函数输出集的一部分