Detectando expresiones constantes en C: Un enfoque basado en macros

2025-05-13

Este artículo explora varios métodos para crear una macro en C que verifica si una expresión es una constante en tiempo de compilación. El autor investiga enfoques usando `constexpr` y `typeof` de C23, extensiones de GNU como `__builtin_constant_p`, `static_assert` de C11 y trucos inteligentes con `sizeof` y literales compuestos. Cada método tiene sus ventajas y desventajas; algunos requieren estándares C más nuevos, dependen de extensiones del compilador o pueden alterar el tipo de la expresión o generar advertencias. El artículo concluye resumiendo los pros y los contras y expresando el deseo de soluciones más elegantes.