Должен ли литерал [const char *] храниться в одном месте?

Допустим, например, у вас есть программа, которая выглядит примерно так:

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

Как видите, литерал my_key вставляется дважды. Насколько я понимаю, это означает, что программа будет дважды напрямую хранить массив символов в двоичном файле, даже если они абсолютно одинаковы, что приводит к раздутию вещей больше, чем нужно.

Было бы лучше сделать что-то вроде этого:

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

Или это не так важно? Компилятор обрабатывает подобные вещи в локальном масштабе? Как насчет вместо локального случая, если один и тот же литерал используется несколько раз в нескольких различных исходных файлах и функциях. Стоит ли еще создавать какую-то глобальную переменную?

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector