0

硬编码具有自我描述性并且只会在一个地方使用的字符串是否被认为是不好的做法?你总是用常量变量替换硬编码的字符串吗?数字呢?它们是否具有足够的自我描述性而不会创建变量?你能举一个你认为幻数合适的例子吗?

4

2 回答 2

3

“只会在一个地方使用”的硬编码字符串的问题是:如果你需要更改字符串,你必须在你的代码中寻找。获取程序的版本号。您可能只在从“信息”菜单调用的对话框中使用它 - 但如果您在那里对其进行硬编码,那么每次更新版本号时,您都必须在“某处”找到字符串。将所有常量字符串放在一个位置会变得容易得多。

至于数值 - 在某些情况下(例如,在科学方程式中),偶尔的常数可能是硬连线的。通常这仅适用于整数(没有人会在硬编码2中退缩circumference = 2 * pi * radius;)。其他常量将再次在一个地方更好地定义 - 更易于调试和维护。例如,我更喜欢只定义pi一次(我的偏好:)pi = 2 * asin(1.0);。与e( e = exp(1.0);) 相同。

想想在六个月内查看/使用您的代码的人。你让他们的生活更轻松还是更艰难?如果他们转移到不同的平台怎么办?这些问题可以帮助您做出正确的选择。

于 2013-08-02T01:55:52.607 回答
0

我不知道你想用哪种语言编写,因为它们都有自己喜欢的解决方案,但例如在 C/C++enum中通常是要走的路。

C++11 的严格类型枚举甚至更好。

于 2013-08-02T01:49:07.533 回答