在Bjarne Stroustrup的A Tour of C中,每章末尾列出了一些建议.在第一章的最后,其中一个读到:
Avoid ‘‘magic constants;’’ use symbolic constants;
什么是魔法和象征常数?
解决方法
somethingElse = something * 1440; // a magic constant somethingElse = something * TWIPS_PER_INCH; // a symbolic one
第一个是魔术常量的一个例子,除了它的值之外,它不传达任何其他信息.
由于意图明确,后者更有用.
如果你有多个具有相同值的东西,使用符号常量也会有很大帮助:
static const int TWIPS_PER_INCH = 1440; static const int SECTORS_PER_FLOPPY = 1440; // showing my age here :-)
这样,如果其中一个更改,您可以轻松识别代码中的哪个单个1440必须更改.由于魔法1440分散在整个代码中,你必须在多个地方改变它,并找出哪些是缇,哪些是扇区.