符号常量

C/C++ 2013年04月05日 ,

1 问题提出

C语言经典问题。要求打印0~500华氏温度与摄氏度的对应关系(每20华氏温度打印一次)。
实现代码如下:

#include <stdio.h>
/*******************
*  Author:http://furzoom.com/
******************/
int fahrToCelsius(int degree)
{
int celsius;
return celsius = 5 * (degree - 32) / 9;
}

int main()
{
int lowTemperature = 0;
int highTemperature = 500;
int stepTemperature = 20;
for( ;lowTemperature <= highTemperature; lowTemperature += stepTemperature)
{
printf("%3d%6d\n",lowTemperature,fahrToCelsius(lowTemperature));
}
return 0;
}

程度输出如下:const1 当我们要求输出-250~370华氏温度,每10华氏温度打印一次时,该如何修改? 我们需要修改程度中的lowTemperature,highTemperature,stepTemperature三个参数,如果这些参数较多,而且分布的位置不像上面程度那样集中时,怎么去查找呢?

2 解决方案

在程序中就尽量避免使用500,20等类似的“幻数”,因为它们几乎无法向以后阅读该程序的人提供什么有用的信息,而且使程序的修改变得更加困难。 处理这种幻数的一种方法是赋予它们有意义的名字,可以使用#define指定名字。

#include <stdio.h>
/*******************
 *  Author:http://furzoom.com/
 ******************/
#define LOWER 0 /* lower limit of table */
#define UPPER 500 /* upper limit */
#define STEP 20 /* step size */
int fahrToCelsius(int degree)
{
    int celsius;
    return celsius = 5 * (degree - 32) / 9;
}

int main()
{
    int fahr;
    for(fahr = LOWER; fahr&lt;=UPPER; fahr+=STEP)
    {
        printf("%3d%6d\n",fahr,fahrToCelsius(fahr));
    }
    return 0;
}

这样我们就可以很轻松的去改变需要改变的数值,对于以后的阅读来讲也是很容易读懂的。

3 总结

在大型项目开发的过程中,要习惯去使用符号常量,使得开发出的程序易于修改,也方便在后续项目中应用。

如无特别说明,本站文章皆为原创,若要转载,务必请注明以下原文信息:
日志标题:《符号常量》
日志链接:http://furzoom.com/const/
博客名称:枫竹梦

发表评论

插入图片

NOTICE1:请申请gravatar头像,没有头像的评论可能不会被回复!

回到顶部