说说 C 语言的符号常量
作者:互联网
假设有一个英里转换为公里的程序:
#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 指令行的末尾没有分号。
deniro_li 发布了607 篇原创文章 · 获赞 682 · 访问量 90万+ 关注标签:Kilometre,lower,语言,常量,Mile,符号,mile,define 来源: https://blog.csdn.net/deniro_li/article/details/104072187