Detectando Expressões Constantes em C: Uma Abordagem Baseada em Macros

2025-05-13

Este artigo explora vários métodos para criar uma macro em C que verifica se uma expressão é uma constante em tempo de compilação. O autor investiga abordagens usando `constexpr` e `typeof` do C23, extensões GNU como `__builtin_constant_p`, `static_assert` do C11 e truques inteligentes com `sizeof` e literais compostos. Cada método tem seus pontos fortes e fracos; alguns exigem padrões C mais novos, dependem de extensões do compilador ou podem alterar o tipo da expressão ou gerar avisos. O artigo conclui resumindo os prós e contras e expressando o desejo por soluções mais elegantes.