Detectando Expressões Constantes em C: Uma Abordagem com Macros
2025-04-22
Este artigo explora vários métodos para criar uma macro em C que detecta se uma expressão é uma expressão constante. O autor investiga várias técnicas, incluindo literais compostos estáticos do C23, a extensão GNU `__builtin_constant_p`, `static_assert`, `sizeof` combinado com arrays literais compostos, `sizeof` com constantes enum e o operador de vírgula. Cada método tem seus prós e contras; o suporte ao C23 é limitado, `__builtin_constant_p` depende de extensões GNU, os métodos `static_assert` e `sizeof` podem alterar o tipo da expressão, e o operador de vírgula gera avisos. O autor conclui que uma solução perfeita é evasiva, e a melhor escolha depende das necessidades específicas e da versão do padrão C.
Desenvolvimento
Expressão Constante