| |
在程序中经常使用一些惟一的常量。这些常量在程序中会反复出现在数字的位置上。这种常量的一个示例是3.142,它表示数字常量“pi”的数值。我们将面对两个问题:
(1) 程序的修改问题;
(2) 程序的理解问题。
可修改性
我们可能想把“pi”的值从3.142修改为3.14159以提高计算的精度。在这种情况下,我们可能要查遍这个程序,显示地修改该常量的值。如果有任何遗漏,程序将产生灾难性的输出。
可理解性
当一个数值出现在程序中时,其作用往往并不是很明显,尤其是相同数值在不同的地方表示不同的事情时更是如此了。
给经常常量赋予一个符号名后,就可以使我们从这些问题中解脱出来。例如,我们可以用STRENGTH来定义学生的数量,用PASS_MARK来定义某课程及格的分数。在程序的开始处就将常量值赋给这些名称。这样,程序中就可以直接使用STRENGTH和PASS_MARK来代替相应的常量值。常量的定义如下:
#define symbolic_name value of constant
以下是一些合法的常量定义示例:
#define STRENGTH 100
#define PASS_MARK 50
#define MAX 200
#define PI 3.14159
符号名有时又称为常量标识符。由于符号名是常量,因此他们不是出现在声明语句段中。用#define语句定义符号常量时,应遵循以下规则:
(1)符号名具有与变量名相同的形式。
(2)在“#”与define之间不允许有空格。
(3)“#”必须位于该行的第一个字符。
(4)在#define与符号名、符号名与常量之间需要有一个空格。
(5)#define语句末尾不能有分好。
(6)一经定义后,在程序中的其他地方就不允许再用赋值语句给该符号名赋给任何其他值了。
(7)符号名不用声明为某种数据类型。其数据类型取决于常量的类型。也就是说,常量的类型就是符号名的类型。
(8)#define语句可以出现在唉程序的任意位置,但必须位于使用它之前。
#define语句是一个预处理编译器命令,是迄今为止所介绍的功能最强的指令。
凌阳教育,全国唯一一家原厂式嵌入式培训机构,专业从事嵌入式人才培训13年,最近新开课程信息安全工程师培训,想了解更多嵌入式资料下载或者是凌阳教育的动态,请访问凌阳教育官网www.sunplusedu.com。