string - 即使字符串只使用过一次,我是否应该使用常量而不是字符串?

标签 string language-agnostic coding-style constants

我有一段代码可以解析一些晦涩的文本文件。
该文本文件可以包含各种关键字。在某些时候,有一些冗长的部分是这样的:

void loadKeywords() {
    tmpString = getValueForKeyword("width");
    if (tmpString != NULL) {
        /* do something for several lines */
    }

    tmpString = getValueForKeyword("height");
    if (tmpString != NULL) {
        /* do something for several lines */
    }

    /* and so on a few dozen times */
}

这些字符串 "height""width"只在这段代码中使用过。不过,我想知道使用定义的字符串常量是否会更好,例如
#define KEYWORD_WIDTH ("width")

而不是上面代码中的那些文字。

你会怎么办?

最佳答案

在不提取常量的情况下开始。然后,如果您稍后出于某种原因需要它,您的编辑器可能会为您执行此操作。

但是,如果您认为它会提高代码的可读性,那么您可以使用常量。如果您可以通过这样做添加更多语义含义,请执行此操作:

BROWSER_WIDTH = "width"
CONNECTION_POOL_MAX_SIZE = "max_size"

关于string - 即使字符串只使用过一次,我是否应该使用常量而不是字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4234129/

相关文章:

java - 私有(private)子类...这是一件坏事吗?

java - 关于 boolean 条件双括号的问题(可能是Java)?

string - ConvertFrom-Sting 模板解析数组失败

java - 将二维字符串数组保存在 .text 文件中并从中加载

Java:替换字符串中缺少的 Unicode 符号?

security - 编写用户身份验证和授权安全类的技巧

字符串中的 PHP 符号

algorithm - 您可以使用什么算法来查找字符串中的重复短语?

algorithm - 给定点的具有精确值的函数插值

c++ - 什么时候必须刷新 C++ 中的输出流?