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.

Lire plus

Détection des expressions constantes en C : une approche par macro

2025-04-22

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.

Lire plus
Développement Expression constante

Conquête de l'Advent of Code 2024 avec BQN

2025-01-25

L'auteur a participé au défi Advent of Code 2024 et a choisi d'apprendre le langage de tableaux BQN. L'article détaille son parcours d'apprentissage, couvrant la configuration, les expériences avec la documentation et les outils, et une introduction aux fonctionnalités de BQN, telles que ses opérateurs uniques, les manipulations de tableaux et les définitions de fonctions. Plusieurs solutions de l'Advent of Code sont partagées, mettant en évidence les points forts de BQN pour la gestion des tableaux et des problèmes de grille, en comparant BQN avec les langages impératifs. Bien que difficile au début, l'auteur considère finalement BQN comme un langage amusant et puissant, particulièrement adapté à la résolution d'énigmes de programmation.

Lire plus
Développement langage de tableaux