我看的这一节是1.5, 主题是Magic Numbers, 大致意思是尽量不要在代码中使用含义不明的数字, 应该要给他们取个名字; define numbers as constants, not macros;
那么问题来了:
Exercise 1-10. How would you rewrite these definitions to minimize opotential errors?
#define FT2METER 0.3048
#define MI2FT 5280.0
...
在C++中可以用const定义, 在Java中可以用final float定义, 在C中, enum只能用于整数,define又是不被推荐的, 那么有别的方法吗?
ps: 1.5节中有一句话我没看懂, 不知道大家可以给我讲讲么:(白乔 注解版Page 27, 中间一段)It may not be worth inventing a name for the size of a local array, but it is definitely worth writing code that does not have to change if the size or type changes.
1
saber000 2015-01-05 01:54:05 +08:00
double FT2METER = 0.3048; // 敢改切JJ
double MI2FT = 5280.0; // 改了捅菊花 |
2
herozem OP @saber000 不对吧, 首先,用enum和const定义常量的目的是让存储常量值的变量不能被重新肤质赋值;因为是double类型, 所以enum不可取, 后来我验证了一下, c89中是有const关键字的;-), 所以这个题应该是用const定义这些个常量
|
3
scenix 2015-01-05 10:28:43 +08:00
const
|
4
canautumn 2015-01-05 11:34:36 +08:00
最后一句应该是说,如果只是为了给本地数组大小的数字起个名字,这么做不太值得;但是如果是考虑到当数组大小数值或类型改变时,不需要修改代码(仅需改变常量定义的值),那这么做就是值得的。
|