Détection des expressions constantes en C : une approche par macro
Cet article explore différentes méthodes pour créer une macro C permettant de détecter si une expression est une expression constante. L’auteur étudie plusieurs techniques, notamment les littéraux composés statiques de C23, l’extension GNU `__builtin_constant_p`, `static_assert`, `sizeof` combiné à des tableaux de littéraux composés, `sizeof` avec des constantes énumérées et l’opérateur virgule. Chaque méthode présente des avantages et des inconvénients : la prise en charge de C23 est limitée, `__builtin_constant_p` dépend des extensions GNU, les méthodes `static_assert` et `sizeof` peuvent modifier le type de l’expression, et l’opérateur virgule génère des avertissements. L’auteur conclut qu’il n’existe pas de solution parfaite et que le meilleur choix dépend des besoins spécifiques et de la version de la norme C.