Détection des expressions constantes en C : une approche basée sur les macros
2025-05-13
Cet article explore différentes méthodes pour créer une macro C qui vérifie si une expression est une constante au moment de la compilation. L'auteur étudie des approches utilisant `constexpr` et `typeof` de C23, des extensions GNU comme `__builtin_constant_p`, `static_assert` de C11 et des astuces astucieuses avec `sizeof` et des littéraux composés. Chaque méthode a ses avantages et ses inconvénients ; certaines nécessitent des normes C plus récentes, dépendent des extensions du compilateur ou peuvent modifier le type de l'expression ou générer des avertissements. L'article conclut en résumant les avantages et les inconvénients et en exprimant le souhait de solutions plus élégantes.
Développement
constante à la compilation