Est-il possible de calculer pow (10, x) au moment de la compilation?Puis-je calculer pow (10, x) à la compilation dans c?
J'ai un processeur sans support de virgule flottante et une division entière lente. J'essaie d'effectuer autant de calculs que possible au moment de la compilation. Je peux accélérer considérablement une fonction particulière si je passe les deux x
et C/pow(10,x)
comme arguments (x et C sont toujours des entiers constants, mais ce sont des constantes différentes pour chaque appel). Je me demande si je peux rendre ces appels de fonction moins enclins à l'erreur en introduisant une macro qui fait le 1/pow(10,x)
automatiquement, au lieu de forcer le programmeur à le calculer?
Existe-t-il une astuce de pré-processeur? Puis-je forcer le compilateur à optimiser l'appel de la bibliothèque?
Je crois que j'ai vu la preuve que le préprocesseur C était complet (je pense qu'il s'agissait d'un magnétophone implémenté dans un concours C dissimulé dans le préprocesseur.) Donc, il y a un moyen. Je ne sais pas ce que c'est, cependant. –
Le préprocesseur #defines ne peut pas être récursif, car il ne s'agit que de remplacements de texte. Donc, comme Greg, voici un endroit pour ne pas passer votre temps à regarder. :) –
@Greg D: Cependant, en commençant par une machine de Turing et en mettant en œuvre un exposant de 10 fonctions me semble ambitieux. –