В проекте ANSI C, над которым я работаю, определены два макроса: PERIOD_IN_MS
и CYCLES_PER_MS
.В реальной логике обработки периода я делаю много сравнений между счетчиком, который увеличивается с каждым циклом и PERIOD_IN_MS * CYCLES_PER_MS
.Меня беспокоит, что эта арифметическая операция неоднократно оценивается во время каждого сравнения.
Кто-нибудь знает, верно ли это, или компилятор будет оценивать произведение двух целочисленных литералов во время компиляции и использовать его вместо этого?
Я понимаю, что этот конкретный пример, вероятно, удалит только одну инструкцию из сгенерированного кода сборки, но теперь мне интересно это.