Андрей
Высший разум
(457357)
1 месяц назад
Абсолютно неразумно. Макрос - это костыль. Типичный для 1970 года, но смотрящийся анахронизмом времён динозавров в 2024 году.
Использование макросов приводит к увеличению объёма машинного кода. Но совсем не обязательно приводит к его ускорению: монолит дикого размера, полученный в результате неумеренного использования макросов, встроенному в компилятор оптимизатору обработать куда сложнее, чем относительно небольшую подпрограмму.
Да, вызов функции - это затраты. Но затраты совсем небольшие. Правильный выбор алгоритмов и качественная их реализация даёт несравнимо больше для улучшения производительности, чем такая экономия на спичках.
Андрей СимоновичМастер (1934)
1 месяц назад
Весьма информативно.
Но стоит ли насовсем отвергнуть применение макросов? Иль же имеется некий компромисс?
Серый Верный
Профи
(763)
1 месяц назад
Привет! Встраиваемые-невстраиваемые правильно говоришь, на усмотрение твоего компилятора. Насчет макросов, естественно в разы быстрей будет работать функции при частом обращении, но есть небольшая закавырка, в многопоточном программировании макросы не будут работать как функции, получится что макрос будет работать как функция с общим для всех потоков куском памяти
Проект не особо крупный и является сугубо личным.
Слыхал я, что подобные практики увеличивают производительность программного обеспечения за счёт отсутствия затрат на вызов функции.
Иль же стоит применять встраиваемые функции? Хотя некоторые компиляторы способны игнорировать их встраиваемость.