符号常量

以圆周率π为例来说明。

# define PI 3.1415926
# include<stdio.h>
# include<math.h>
void main(){
  double r=1.11,v /*r为半径,v代表圆球的体积*/
  v=4.0/3.0*PI*pow(r,3);
  printf("v=%f\n",v);
}
程序的第1行是用#define命令定义一个符号常量PI,使PI代表3.1415926即圆周率。这个PI就叫做符号常量,符号常量一般都使用大写字符表示。

#define不是C语句,所以改行的末尾没有分号。它是一个“预编译命令”。

在程序编译时,分成两个步骤:

(1)“预编译”。对所用预编译命令进行处理。如,根据#define命令,对程序中出现的所有的PI都用3.1415926代替。在预编译时,同样也对#include命令进行处理,把stdio.h头文件和math.h头文件的内容调出来,放在#include命令的位置,取代#include命令。

(2)“编译”。得到目标文件,后缀为obj。


不要把符号常量与变量混淆。符号常量只是一个符号,不占存储单元,它只是简单地进行字符置换,不论置换的字符是否有含义都进行置换。如果把PI定义如下:

#define PI 3@1415926

在预编译时,照样会把3@1415926取代PI,取代后如果不符合C语言的语法规定,则在编译时报错,预编译时并不会报错。

符号常量只是一个符号,不是变量,不能对其使用赋值运算,如下面的写法是错误的:

#define PI=3.14  /*错误,符号常量不能使用赋值运算符*/

也不能对符号常量指定类型,下面的写法是错误的:

#define double PI 3.1415926 /*错误,符号常量不能指定数据类型*/

还有一点要注意的是,如果一个字符串已经被定义为符号常量,则这个字符串不能再被声明为变量了,会报错。


使用符号常量的好处:

(1)含义清晰,增加程序的可读性。如PI,PRICE等含义清晰的字符,让人见名之意。

(2)“一改全改”,增加程序的可维护性。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值