Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
1 / 1 / 1
Регистрация: 31.03.2014
Сообщений: 62
1

Как компилятор сохраняет константы?

02.02.2015, 21:06. Показов 728. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Вопрос такой. Компилятор на этапе компиляции умножает константы в коде типа 1000 * 5, M_PI * 5 или допустим если функция несколько раз вызывается то считается каждый раз во время ее выполнения.
Информацию по этому поводу читал когда-то, но сейчас не могу найти авторитетный источник. Может этот процесс где-то подробно описан?
Спасибо.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
02.02.2015, 21:06
Ответы с готовыми решениями:

Зачем компилятор подставляет константы?
Открыл свой код рефлектором и обнаружил, что компилятор на место всех констант подставляет их...

Компилятор PascalABC.NET не сохраняет код в редакторе форм
Здравствуйте! Подскажите, пожалуйста! Есть проект Project1. В нем unit, который называется...

Комбинаторно- вероятностный смысл константы пи, гамма функция и обобщение константы пи
Добавлено через 33 минуты Известна формула для выражения \pi, ...

Магнитола не сохраняет последний воспроизведённый файл (с флешки), а позицию сохраняет
Во общем в машине есть магнитола JVC, в ней есть CD диск, USB flash накопитель и радио... Так вот:...

4
Диссидент
Эксперт C
27706 / 17322 / 3812
Регистрация: 24.12.2010
Сообщений: 38,979
02.02.2015, 21:16 2
Цитата Сообщение от phtnr Посмотреть сообщение
Компилятор на этапе компиляции умножает константы в коде типа 1000 * 5, M_PI * 5
Да! На это ему мозгов хватает.
1
Модератор
Эксперт по электронике
8908 / 6677 / 918
Регистрация: 14.02.2011
Сообщений: 23,521
02.02.2015, 21:23 3
не понял
это имеешь ввиду?
C++
1
int x=5*100;
заменится на
C++
1
int x=500;
1
1 / 1 / 1
Регистрация: 31.03.2014
Сообщений: 62
02.02.2015, 23:32  [ТС] 4
Да, спасибо, в этом и заключался вопрос.
0
5231 / 3204 / 362
Регистрация: 12.12.2009
Сообщений: 8,116
Записей в блоге: 2
03.02.2015, 09:03 5
Это оптимизация и называется она constant folding. Поддерживает ли ее компилятор нужно смотреть в документации к компилятору. Понятно, что все современные компиляторы ее поддерживают, просто хочу акцентировать, что это не дефолтное поведение компилятора, а необязательная оптимизация.
0
03.02.2015, 09:03
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.02.2015, 09:03
Помогаю со студенческими работами здесь

Можно ли в матрице M и N обозначить как переменные или только как константы?
Дан массив MxN. Можно ли в matrix:array of integer; M и N обозначить как переменные или только как...

[trigraph] Как отключить? Как устранить триграф из литерной константы?
Доброго времени суток. Сборка Debug при помощи mingw482_32. Возникла проблема с триграфами. ...

Как хранить константы?
Здравствуйте. Подскажите пожалуйста - как лучше хранить константы? Допустим у меня разработка...

Как связать константы с формулами?
Подскажите, пожалуйста, как привязывать разные константы к формулам и формулы между собой,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru