从头学C(5)符号常量

0

写程序就跟写文章一样,一个优秀的作者写出来的文章不单是自己能懂,还要让别人也能看懂;一个优秀的程序员写出来的程序,可以让别人轻而易举地理解。

添加注释是个好习惯,灵活使用符号变量也是一个好习惯。

第一章 导言 >> 1.4 符号常量

上一节的温度对照表程序中,我们直接使用了300、20这样的常量,而具体这几个数字代表什么意义呢?简单的程序还比较容易理清,复杂的程序怎么办?

不过,利用符号常量,我们就可以给这些“莫名其妙”的数字赋予特殊的意义。请看下面的程序:

#include <stdio.h>

#define LOWER 0    /* 表的下限 */
#define UPPER 300  /* 表的上限 */
#define STEP  20   /* 步长 */

/* 打印华氏温度-摄氏温度对照表 */
main()
{
    int fahr;

    for (fahr = LOWER; fahr <= UPPER; fahr = fahr + STEP)
        printf("%3d %6.1f\n", fahr, (5.0/9.0)*(fahr-32));
}

#define指令可以把符号名(或叫符号常量)定义为一个特定的字符串:

#define 名字 替换文本

其中名字和普通变量名的形式相同(即以字母打头的字母和数字序列),而替换文本可以是任何的字符序列。

编译时,编译器会将程序中所有用#define定义了的“名字”替换为对应的“替换文本”。如上例,所有出现LOWER的地方都会被替换为0,所有出现UPPER的地方都会被替换成300。

注意:

  1. 符号常量是常量,不是变量,因此无需声明
  2. #define指令行的末尾没有分号(;)
  3. 符号常量的名字通常用全大写的字母,易于与小写字母拼写的变量名相区别。

Leave A Reply