符号常量只是一个符号,不占存储单元,它只是简单地进行字符置换,不论置换的字符是否有含义都进行置换。如果把PI定义如下:
#define PI 3@1415926
在预编译时,照样会把3@1415926取代PI,取代后如果不符合C语言的语法规定,则在编译时报错,预编译时并不会报错。
符号常量只是一个符号,不是变量,不能对其使用赋值运算,如下面的写法是错误的:
#define PI=3.14 /*错误,符号常量不能使用赋值运算符*/
也不能对符号常量指定类型,下面的写法是错误的:#define double PI 3.1415926 /*错误,符号常量不能指定数据类型*/
还有一点要注意的是,如果一个字符串已经被定义为符号常量,则这个字符串不能再被声明为变量了,会报错。
使用符号常量的好处:
(1)含义清晰,增加程序的可读性。如PI,PRICE等含义清晰的字符,让人见名之意。
(2)“一改全改”,增加程序的可维护性。
在这个例子中,使用符号的好处是:如果此时要将圆周率3.14的值修改为3.14159,如果没有使用符号常量,那么至少要修改两次PI的地方,而现在定义了符号常量PI,只要PI一个位置即可。如果在一个大型的项目当中出现这种...
使用final定义符号常量
符号常量:NUM、PI
在这个例子中,使用符号的好处是:如果此时要将圆周率3.14的值修改为3.14159,如果没有使用符号常量,那么至少要修改两次PI的地方,而现在定义了符号常量PI,只要PI一个位置即可。如果在一个大型的项目当中出现这种情况,有成千上万个,难道要逐个去修改吗?那会相当的麻烦。Final取自于finally表示最终的,表示不能再被改变的,在C语言中用CONST来代表常量,这个词取自于CONSTANT。可以结合英文单词来记忆这些关键词。