0 / 0 / 0
Регистрация: 05.01.2010
Сообщений: 9
|
||||||
1 | ||||||
Чем же макрос define так плох?08.01.2010, 03:29. Показов 16669. Ответов 115
После прочтения про директиву препроцессора define возник вопрос по поводу применения define, как функции:
0
|
08.01.2010, 03:29 | |
Ответы с готовыми решениями:
115
Чем так плох чипсет P31? чем плох mysql_query Чем плох uCoz? Чем плох goto? |
Неэпический
|
||||||
24.10.2015, 22:03 | 81 | |||||
1
|
24.10.2015, 22:09 | 82 | |||||
Я начинаю понимать что вы имеете в виду. Просто меня больше интересовало понятие "неконстантная константа" по канонам языка...
Кликните здесь для просмотра всего текста
Добавлено через 4 минуты ValeryS, ну это ты загнул конечно))
0
|
Croessmah
|
|||||
24.10.2015, 22:22
#83
|
|||||
Не по теме:
чисто поржать :D
0
|
castaway
|
24.10.2015, 22:29
#84
|
Не по теме: Croessmah, тебе бы обфускатором работать))
0
|
:)
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
|
|
24.10.2015, 22:42 | 85 |
Только вот при таком определении будет UB при попытке изменить переменную cv. Т.к.
volatile подразумевает изменение извне кода (чтобы компилятор не пытался оптимизировать доступ). А убирание константности через const_cast с дальнейшей записью как бы ничем не отличается от случая, если бы volatile не было вовсе. Т.е. попытка записать в константную ячейку.
1
|
castaway
|
24.10.2015, 22:56
#88
|
0
|
Модератор
8908 / 6677 / 918
Регистрация: 14.02.2011
Сообщений: 23,521
|
|
24.10.2015, 23:06 | 90 |
бяда С(и плюсов) в том что он пытается быть языком высокого уровня и в тоже время разрешает низкоуровневый доступ
и в результате на каждое нововведение ограничивающие программиста, найдется "финт ушами" который это нововведение нивелирует если есть неконтролируемый доступ к памяти, особенно на архитектуре фон Немана,считай что все ограничения обошли
0
|
Tulosba
|
24.10.2015, 23:26
#94
|
Не по теме: Так вот подумал сейчас, что тему надо вообще на N разбить:
0
|
castaway
|
24.10.2015, 23:30
#95
|
0
|
Croessmah
|
24.10.2015, 23:30
#96
|
0
|
Tulosba
|
24.10.2015, 23:32
#97
|
0
|
Evg
|
24.10.2015, 23:45
#98
|
Не по теме: Словом "inline" называют подстановку тела функции в точку её вызова, а не подстановку значения const-переменной в точку её обращения (это уже constant propagation или что-то типа того)
0
|
8739 / 4317 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
|
25.10.2015, 12:19 | 99 |
хех, вы не поняли.
"убрать константу" в данном случае значит заменить её не константой. а не убрать целиком и полностью. понятно, что если мы физически вырежим код, то и в бинарник тоже меньше будет попадать. но речь жеж не об этом. когда я выше писал: компилятор значения констант inline подстановками профигачит. вы это так и поняли? что он константу физически вырезает. а потом из астрала читает? ---------------------------------------- в памяти не хранится. (секцию бинарника для кода я не рассматриваю в принципе) Добавлено через 5 минут см #43. это не принципиально. const-переменная является константой просто потому, что у неё такой квалификатор. при этом она может и не быть константой времени компиляции. но это так же не принципиально. потому что все топовые компиляторы уже давным давно научились оптимизировать промежуточные значения. я называю адресом значение указателя. вы можете привести пример хотя бы одного такого случая, когда я веник называл пряником. потому что сейчас ваши речи - ложь и клевета.
0
|
25.10.2015, 12:27 | 100 |
Словом "константа" называть переменную
Использовать понятие "адрес константы" Словом "inline" называть пропагирование константного значения
0
|
25.10.2015, 12:27 | |
25.10.2015, 12:27 | |
Помогаю со студенческими работами здесь
100
Чем плох make? Чем плох управляемый С++? Чем плох void main? Чем плох ProBuilder (Unity3D)? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |