1.4 符号常量
魔法数字,在编程领域指莫名其妙出现的数字
必须通过详细阅读才能推断出数字的意义
在程序中使用 300、20 等类似的 “ 魔法数字 ” 并不是一个好习惯
它们几乎无法向以后阅读该程序的人提供什么信息,而且使程序的修改变得更加困难
处理这种魔法数字的一种方法是赋予它们有意义的名字
#define
指令可以把符号名(或符号常量)定义为一个特定的字符串:
#define
名字 替换文本
在该定义之后,程序中出现的所有在 #define
中定义的名字(既没有用引号引起来,也不是其它名字的一部分)都将用相应的替换文本替换
其中,名字与普通变量名的形式相同:它们都是以字母打头的字母和数字序列
替换文本可以是任何字符序列,而不仅限于数字
#include <stdio.h>
#define LOWER 0 /* lower limit of table */
#define UPPER 300 /* upper limit */
#define STEP 20 /* step size */
/* print Fahrenheit-Celsius table */
main()
{
int fahr;
for (fahr = LOWER; fahr <= UPPER; fahr = fahr + STEP)
printf("%3d %6.1f\n", fahr, (5.0 / 9.0) * (fahr - 32));
}
LOWER
、UPPER
与 STEP
都是符号常量,而非变量,因此不需要出现在声明中
符号常量名通常用大写字母拼写,这样可以很容易与用小写字母拼写的变量名相区别
注意,#define
指令行的末尾没有分号