Чтение параметра из входного файла против установки его в качестве статического константы в файле .h - оптимизация компилятора - PullRequest
0 голосов
/ 20 сентября 2018

У меня есть внешний файл Excel, который содержит список различных значений параметров, необходимых для запуска приложения.Один из параметров в файле excel - numberofcustomers.Я прочитал это в начале моей программы в объект, скажем, globalconstant объект, gcs.Класс globalconstant имеет закрытый элемент данных int Numberofcustomers;

Всякий раз, когда мне нужно использовать этот параметр в моей программе, я обращаюсь к нему через открытую функцию-член класса, определенного таким образом:

int numberofcustomers() const {return Numberofcustomers;}

Например, если мне нужно просмотреть количество клиентов, я получу:

for(int i = 0, sz = gcs.numberofcustomers(); i < sz; i++){...}

Таким образом, скомпилированный и собранный исполняемый файл не имеетИдея, что numberofcustomers может быть.

В противоположность этому, другой дизайн может быть явно определять:

static const int numberofcustomers = 100;

в заголовочном файле и перекомпилировать / перестроитьвесь проект.Таким образом, я могу полностью избавиться от необходимости во внешнем файле настроек Excel.

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

Количество различных параметров, которые я имею, составляет от 15 до 20 или около того.Преимущество первого дизайна заключается в том, что управлять параметрами намного проще, открыв только файл Excel и изменив его.Это также избавляет меня от необходимости перекомпилировать и перестраивать мой проект.

...