文字[const char *]是否应存储在一个位置?

时间:2018-08-12 14:46:04

标签: c++ compilation const-char

例如,假设您有一个看起来像这样的程序:

QJsonArray a = data->value("my_key").toArray();
a.push_back(id);
data->insert("my_key", a);

如您所见,文字“ my_key”被插入了两次。据我了解,这意味着该程序会将char数组直接存储到二进制文件两次,即使它们完全相同,从而使事情变得多余。

做这样的事会更好:

const char* n = "my_key";
QJsonArray a = data->value(n).toArray();
a.push_back(id);
data->insert(n, a);

还是真的不重要吗?编译器是否在本地范围内处理类似的事情?如果在多个不同的源文件和函数中多次使用同一文字,该怎么办而不是本地情况。仍然值得创建某种全局变量吗?

0 个答案:

没有答案