美文网首页C语言
说说 C 语言的符号常量

说说 C 语言的符号常量

作者: deniro | 来源:发表于2020-01-22 19:50 被阅读0次

    假设有一个英里转换为公里的程序:

    #include <stdio.h>
    
    /* print Mile to Kilometre table*/
    main() {
        float mile, kilometre;
    
        int lower = 0;//lower limit
        int upper = 1000;//upper limit
        int step = 30;//step size
    
        printf("Mile Kilometre\n");
        mile = lower;
        while (mile <= upper) {
            kilometre = 1.61 * mile;
            printf("%3.0f     %6.1f\n", mile, kilometre);
            mile = mile + step;
        }
    }
    

    运行结果:
    Mile Kilometre
    0 0.0
    30 48.3
    60 96.6
    90 144.9
    120 193.2
    ...

    这段程序本身逻辑没什么问题,只是可以进一步优化,比如使用 #define 指令来定义 lower 、upper 、step 。使用 #define 指令定义的常量叫做符号常量。

    #define 指令语法为:

    #define 常量名 替换文本
    

    定义好符号常量之后,程序中所有出现在 #define 中定义的常量名,都会被替换为相应的文本。常量名可以是以字母打头的字母和数字序列;替换文本可以是任何字符序列。

    常量名通常用大写字母拼写,很多编程语言(Java、Python)都有这样的约定。因为这样可以与用小写字母拼写的变量名区分开来。

    上述程序改为符号常量形式的版本为:

    #include <stdio.h>
    
    /* print Mile to Kilometre table*/
    
    #define LOWER 0 //lower limit
    #define UPPER 1000 //upper limit
    #define STEP 30 //step size
    
    main() {
        float mile, kilometre;
    
        printf("Mile Kilometre\n");
        mile = LOWER;
        while (mile <= UPPER) {
            kilometre = 1.61 * mile;
            printf("%3.0f     %6.1f\n", mile, kilometre);
            mile = mile + STEP;
        }
    }
    

    输出结果与上例相同。

    注意:#define 指令行的末尾没有分号。

    相关文章

      网友评论

        本文标题:说说 C 语言的符号常量

        本文链接:https://www.haomeiwen.com/subject/ykbuzctx.html