Можно ли вычислить pow(10,x) во время компиляции?
У меня есть процессор без поддержки плавающей запятой и медленного целочисленного деления. Я пытаюсь выполнить как можно больше вычислений во время компиляции. Я могу значительно ускорить одну конкретную функцию, если передам в качестве аргументов x
и C/pow(10,x)
(x и C всегда являются постоянными целыми числами, но они являются разными константами для каждого вызова). Мне интересно, могу ли я сделать эти вызовы функций менее подверженными ошибкам, введя макрос, который автоматически выполняет 1/pow(10,x)
, вместо того, чтобы заставлять программиста вычислять его?
Есть ли трюк с препроцессором? Могу ли я заставить компилятор оптимизировать вызов библиотеки?