您的位置:首页 > 编程语言 > C语言/C++

关于C/C++中 常量应用的注意事项

2008-01-06 11:48 357 查看
常量用来 增强程序的可读性和可维护性,如果这一点做不到 ,这些东西就是被用滥了
下面的常量,后面加了* 号的 是 我写的,
问题:像这些 很简单的 ,而且 没有 实际意义的 东西不要搞成常量了,敲一大堆大写字母。
当然如果你的字符串有格式 要拼出来大可以写一个 注释: yyyy-mm-dd “-” 然后一切都明白了
const char CONST_CHAR_COMMA = ','; // 逗号 //* 逗号字符
const string CONST_STRING_COMMA = ","; // 逗号 //* 次字符串是字符
const string CONST_EMPTY_CHAR = ""; //* 此语句应该是说 EMPTY_STRING
const string CONST_SEPARATE_CHAR = "_"; // 分割符 //*这一句应该是说 下划线
下面的 比较严重,常量 引用 常量, 贴到代码里,鬼才知道这是什么呢,反正我是看不懂
看不出常量的类型,用的时候还是要翻头文件,

const int CONST_SHOWTYPE_GRID = ST_GRID;
const int CONST_SHOWTYPE_LINE = ST_LINE;
const int CONST_SHOWTYPE_BAR = ST_BAR;
const int CONST_SHOWTYPE_PIE = ST_PIE;
const int CONST_SHOWTYPE_MAP = ST_MAP;

过多了使用常量 有以下几种坏处:
如果一个模块使用了此头文件,常量将被链接到所有使用此头文件的代码中,如果此常量文件很多――哪怕你只是用了 一条, 也许你就要加 好多K的可执行文件大小,如果模块很多,更严重。
不要把什么都随意写成常量, 实际用着方便才是硬道理。
本来是为了容易维护, 等常量文件足够多, 足够大的时候, 你再也不会谈可维护性, 一个字段改变了,你还是要编译器来为你搜索。
将常量尽量局部化, 如果本模块使用,甚至只有本 文件(cpp)使用,就限制在其中好了。很多常量不是全局的都需要知道,自己模块内部的,一定不要让别人看见,除非 关键的 全局常量。
常量要放在它应该在的场景,小心慎用。
不要看着书上说―― 应该怎么怎么样才好。经验不是万能的,经验是在一定的条件和过程下产生的,如果不加消化的滥用, 将来会很痛苦的, 总有一天你会记不清那是什么,为什么要定义那个东西,注释有时候只是对写它的人有用,别人根本看不懂你的注释――因为时过境迁,很多东西不再需要,留下来还不敢删除了,只能是 代码中的 垃圾
本文出自 “queniao” 博客,请务必保留此出处http://queniao.blog.51cto.com/10636/58194
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: