在程序中使用300,20等类似的"魔法数字"不是一个好的编程习惯,它不易阅读,并且对后期的维护造成困难。处理这种魔法数字的方法是富裕他们有意义的名字。#define 指令可以把符号常量定义为一个特定的字符串:
#define 名字 替换文本
其中,名字与普通变量名形式相同:以字母开头的字母和数字序列;替换文本可以是任何字符串,不限于数字。例如:
#include <stdio.h>
#define LOWER 0 /* lower limit of table */
#define UPPER 300 /* upper limit */
#define STEP 20 /* step size */
/* print FahrenheitCelsius
table */
int main()
{
int fahr;
for (fahr = LOWER; fahr <= UPPER; fahr = fahr + STEP)
printf("%3d %6.1f\n", fahr, (5.0/9.0)*(fahr - 32));
return 0;
}
#define
也是预编译处理命令,在程序开始编译前,我们提前定义的LOWER
,UPPER
,STEP
会被替换成对应的文本。符号常量一般使用大写字母拼写,这样可以和小写字母拼写的变量名区别,#define
行末没有分号