Detectando Expresiones Constantes en C: Un Enfoque con Macros
Este artículo explora varios métodos para crear una macro en C que detecta si una expresión es una expresión constante. El autor investiga varias técnicas, incluyendo literales compuestos estáticos de C23, la extensión GNU `__builtin_constant_p`, `static_assert`, `sizeof` combinado con arrays literales compuestos, `sizeof` con constantes enum y el operador coma. Cada método tiene sus pros y contras; el soporte de C23 es limitado, `__builtin_constant_p` depende de extensiones GNU, los métodos `static_assert` y `sizeof` pueden cambiar el tipo de la expresión, y el operador coma genera advertencias. El autor concluye que una solución perfecta es evasiva, y la mejor opción depende de las necesidades específicas y la versión del estándar C.