看 K&R 时 , 说到了符号常量 , 文中提到
[ 在程序中使用 300、20等类似的"幻数"并不是一个好习惯,它们几乎无法向以后阅读该程序的人提供什么信息,而且使程序的修改变得更加困难. ]
从而尽可能小地使用"幻数"而是使用符号常量 .
在百度百科看到这么一段话
[在c语言中,把直接使用的常数叫做幻数。在编程时,应尽量避免使用幻数,因为当常数需要改变时,要修改所有使用它的代码,工作量巨大,还可能有遗漏。因此通常把幻数定义为宏或枚举。建议使用枚举,因为它是编译阶段存在的符号,编译器的提示会更清晰、更准确。]
那么幻数我search了一下,说是一个不确定的数 , 我理解貌似就是一个广义的意思,每个领域理解都不一样 .
然后有说到 ,如果只使用幻数 会令源码作者以为的人很难知道这个幻数是做什么用的 ,
我的问题就来了 , 在定义一个数的时候也会有一个变量名啊, 怎么会很难理解呢?
然后如果是用符号变量 "#define" 也是有一个名字 , 在代码中也是和使用变量名一样的.
以上所有的 , 能否有人给一些列子让我了解一下呢 ??
==========================================================
然后 我有看到一个符号变量解释说 .
[符号常量 pi 和常变量 PI 都代表3.1415926,在程序中都能使用,只是二者的性质有所差别,定义符号常量使用#define 指令,是预编译指令,只是使用一个符号常量代表一个字符串,在预编译是仅仅进行字符替换,在预编译之后符号常量不存在了(全部换成了3.1415926),对符号常量的名字是不分配内存的。常变量要占据内存空间,有变量值,只是这个值不改变。]
这个解释说到了程序的效率 或者是性能方面的. 这个又是如何呢?
文章有点长 . 希望能有一个好点的解答啊.
[ 在程序中使用 300、20等类似的"幻数"并不是一个好习惯,它们几乎无法向以后阅读该程序的人提供什么信息,而且使程序的修改变得更加困难. ]
从而尽可能小地使用"幻数"而是使用符号常量 .
在百度百科看到这么一段话
[在c语言中,把直接使用的常数叫做幻数。在编程时,应尽量避免使用幻数,因为当常数需要改变时,要修改所有使用它的代码,工作量巨大,还可能有遗漏。因此通常把幻数定义为宏或枚举。建议使用枚举,因为它是编译阶段存在的符号,编译器的提示会更清晰、更准确。]
那么幻数我search了一下,说是一个不确定的数 , 我理解貌似就是一个广义的意思,每个领域理解都不一样 .
然后有说到 ,如果只使用幻数 会令源码作者以为的人很难知道这个幻数是做什么用的 ,
我的问题就来了 , 在定义一个数的时候也会有一个变量名啊, 怎么会很难理解呢?
然后如果是用符号变量 "#define" 也是有一个名字 , 在代码中也是和使用变量名一样的.
以上所有的 , 能否有人给一些列子让我了解一下呢 ??
==========================================================
然后 我有看到一个符号变量解释说 .
[符号常量 pi 和常变量 PI 都代表3.1415926,在程序中都能使用,只是二者的性质有所差别,定义符号常量使用#define 指令,是预编译指令,只是使用一个符号常量代表一个字符串,在预编译是仅仅进行字符替换,在预编译之后符号常量不存在了(全部换成了3.1415926),对符号常量的名字是不分配内存的。常变量要占据内存空间,有变量值,只是这个值不改变。]
这个解释说到了程序的效率 或者是性能方面的. 这个又是如何呢?
文章有点长 . 希望能有一个好点的解答啊.