| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > Оптимизация через static переменную внутри функции |
| Автор: SABROG 14.4.2010, 23:38 | ||||
Вопрос теоретический.
Предположим, что функция externalFunctionFromDll() может возвращать различные значения и компилятору конечно ничего о ней не известно на этапе компиляции. Статический экземпляр класса MyClass инициализируется 1 раз при первом вхождении в функцию foo(), внутреннее состояние копии экземпляра класса MyClass зависит от того что вернет функция func(), результат которой зависит от параметра value. Сможет ли компилятор оптимизировать функцию foo() таким образом, чтобы функция externalFunctionFromDll() вызывалась лишь один раз, при первом вхождении в функцию, или её вызов будет происходить каждый раз? Если я перепишу функцию таким образом
Сможет ли компилятор провести оптимизацию таким образом, чтобы под переменную value не отводилась постоянная ячейка памяти, так как она не используется нигде кроме как для передачи в качестве параметра и то один раз при инициализации mc? |
| Автор: borisbn 15.4.2010, 09:01 | ||
насколько я знаю под const int никогда не отводится ячейка, а он работает как типизованный define |
| Автор: mes 15.4.2010, 09:18 |
| Автор: azesmcar 15.4.2010, 10:01 | ||||
а что же тогда тут выводится? |
| Автор: borisbn 15.4.2010, 10:30 |
| mes, azesmcar, sorry, конечно же. Просто неправильно выразился. Присоединяюсь к |