Pergunta

Quais opções do GCC devo usar para aplicar avisos/erros de ANSI C (C99)? GCC (GCC) 3.4.2 (Mingw-Especial)

Estou usando: GCC -Pedantic -ansi -std = c99 isso está correto?

Foi útil?

Solução

o -ansi A bandeira é sinônimo de -std=c89 bandeira.

Apenas usando -std=c99 com -pedantic deve ser suficiente.

Em caso de dúvida, você sempre pode Consulte a documentação do GCC. A partir do GCC 3.4.2, o capítulo para ler é 2 - Padrões de idioma suportados pelo GCC.

Outras dicas

Esta é uma pergunta antiga, mas eu só queria adicionar alguns pontos extras.

Em primeiro lugar, independentemente do conjunto de interruptores genéricos da linha de comando que você fornece ao GCC, atualmente não parece ser possível fazer do GCC relatar tudo violações de restrição como "erros" e tudo mais como "avisos". Algumas das mensagens de diagnóstico relatórios do GCC como "avisos" são de fato violações de restrição (ou seja, "erros") do ponto de vista da linguagem C, mas não há como forçar o GCC a reconhecer esse fato e gerar um diagnóstico de "erro". Muito possivelmente, uma separação mais precisa pode ser alcançada por tipos de aviso individuais ajustados, mas não tenho certeza de que as configurações do GCC fornecem granularidade suficiente para obter uma boa correspondência.

Em segundo lugar, o GCC fornece -pedantic-errors opção que pode ser usada no lugar da planície -pedantic, o que se destina a permitir uma classificação mais precisa (como descrito acima) de mensagens de diagnóstico em "erros" e "avisos". Ainda não é perfeito.

PS A especificação do idioma não requer/define a separação de mensagens de diagnóstico em "erros" e "avisos", mas na prática muitos programadores esperam que as violações de restrição sejam relatadas como "erros". Eu pensei que você poderia significar algo assim quando mencionou "Atendendo os avisos/erros" em sua pergunta.

-ansi
    In C mode, this is equivalent to -std=c89. In C++ mode, it is equivalent to -std=c++98.

Ansi C não é o mesmo que C99 (ainda). Também, -Wall também pode ser de interesse, mas apenas -pedantic deve fazer o que você quiser.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top