![C语言程序设计与实践(第3版)](https://wfqqreader-1252317822.image.myqcloud.com/cover/586/49165586/b_49165586.jpg)
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
2.4 符号常量
例2-4中的程序把3.1415926、360、30等常数直接写在了程序中,这并不是一种好的习惯,原因如下:
1)这些纯粹的数没有任何表征意义,几乎不能给以后可能要阅读该程序的人提供什么信息。
2)使程序的修改变得困难,因为如果修改角度上限和步长,必须修改程序中的所有360和30。
解决上述问题的一种方法是赋予它们有意义的名字。#define指令就用于把符号名字(或称为符号常量)定义为一特定的字符串,其形式如下:
![](https://epubservercos.yuewen.com/75A7CA/28900971903376806/epubprivate/OEBPS/Images/28_03.jpg?sign=1734447185-AUPxqS1cnJaIvFjJqmYor7nsR8ZA4GpW-0-20835498cd5c09b308328da6bd9312f8)
此后,所有在程序中出现的在#define中定义的名字,如果该名字既没有用引号括起来,也不是其他名字的一部分,都用所对应的替换文本替换。这里的名字与普通变量名的形式相同:以字母开头的字母或数字序列。替换文本可以是任何字符序列,而不仅限于数字。
例2-5 用符号常量打印余弦函数的离散值表。
![](https://epubservercos.yuewen.com/75A7CA/28900971903376806/epubprivate/OEBPS/Images/28_04.jpg?sign=1734447185-vHcRdOQpFR0R3XBNdFvLqByknB7cPKnb-0-33555284216e31f18dd33bd282c4cee6)
![](https://epubservercos.yuewen.com/75A7CA/28900971903376806/epubprivate/OEBPS/Images/29_01.jpg?sign=1734447185-kMN5tLPNliBPiJRi7WtoAQMnH77u8TQJ-0-1cc38f951407d45a68c15ff50e0021f7)
这里,PI、START、END与STEP称为符号常量,而不是变量,故不需要出现在定义中。这样,如果需要提高函数曲线的拟合精度,就只需要缩小STEP并给定更精确的PI值即可。符号常量名通常采用大写字母,这样就可以很容易地将其与采用小写字母拼写的变量名相区别。注意:#define也是一条编译预处理指令,因此该行的末尾是没有分号的。