Existe-t-il un moyen d'effectuer compile-time function execution en C? Avec GCC? J'ai seulement vu ceci disponible en utilisant constexpr in C++.Exécution de la fonction de compilation
0
A
Répondre
1
Tant qu'il n'y a que des constantes impliquées dans une expression, elle sera calculée au moment de la compilation. C++ constexpr
est la plupart du temps un moyen sûr de le faire sans impliquer les macros. En C, il n'y a que des macros. Par exemple:
#define CIRCLE_AREA(r) (int32_t)((double)(r) * (double)(r) * M_PI)
int32_t area = CIRCLE_AREA(5);
effectue tous les calculs à la compilation, il est donc équivalent à l'écriture:
int32_t area = 78;
Selon le code, le compilateur peut optimiser à une valeur simple, mais pas il n'y a pas façon standard pour cela dans C. –