¿Es posible calcular pow (10, x) en tiempo de compilación?¿Puedo calcular pow (10, x) en tiempo de compilación en c?
Tengo un procesador sin soporte de punto flotante y división de entero lento. Estoy tratando de realizar tantos cálculos como sea posible en tiempo de compilación. Puedo acelerar drásticamente una función en particular si paso tanto x
como C/pow(10,x)
como argumentos (xy C son siempre enteros constantes, pero son constantes diferentes para cada llamada). Me pregunto si puedo hacer que estas llamadas a funciones sean menos propensas a errores al introducir una macro que hace el 1/pow(10,x)
automáticamente, en lugar de forzar al programador a calcularlo.
¿Hay un truco previo al procesador? ¿Puedo forzar al compilador a optimizar la llamada a la biblioteca?
Creo que he visto pruebas de que el preprocesador C está completo (creo que fue una máquina de cintas implementada en un concurso de C ofuscado en el preprocesador). Así que hay una manera. Sin embargo, no sé qué es ese camino. –
Las definiciones de preprocesador # no pueden ser recursivas, ya que son solo reemplazos de texto. Así que, al igual que Greg, aquí hay un lugar donde NO debes perder el tiempo buscando. :) –
@Greg D: Sin embargo, comenzar con una máquina de Turing e implementar un exponente de 10 funciones me parece ambicioso. –