"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Quais são os níveis ideais de aviso do compilador para compiladores C/C++?

Quais são os níveis ideais de aviso do compilador para compiladores C/C++?

Publicado em 2024-11-09
Navegar:684

What are the Optimal Compiler Warning Levels for C/C   Compilers?

Níveis ideais de aviso do compilador para compiladores C/C

A otimização dos níveis de aviso do compilador pode melhorar significativamente a qualidade do código e o tratamento de erros. Diferentes compiladores oferecem vários níveis de avisos, e compreender o nível apropriado para o seu projeto específico é crucial.

Níveis recomendados para compiladores comuns:

  • gcc e g : '-Wall' é geralmente recomendado para detectar os problemas mais comuns, incluindo erros de precedência lógica e possíveis problemas de conversão.
  • Sun CC: Considere '-v :> warninglevel=3' ou '-werror' se necessário.
  • aCC (HPUX): '-Wall -fsyntax-error=ignore' pode ser útil, mas '-Werror' deve ser usado com cautela devido a possíveis avisos falsos.
  • Visual Studio: '-Wall' é um bom ponto de partida, enquanto '-W4' fornece uma gama abrangente de verificações.
  • Intel: '-Wall' para avisos básicos e '-Werror' para tratar todos os avisos como erros (use com cuidado).

Advanced Warning Flags para C Código:

Para precaução extra, sinalizadores de aviso avançados, como:

-Wextra -Waggregate-return -Wcast-align -Wcast-qual -Wchar-subscripts
-Wcomment -Wconversion -Wdisabled-optimization -Werror -Wfloat-equal
-Wformat -Wformat=2 -Wformat-nonliteral -Wformat-security -Wformat-y2k
-Wimplicit -Wimport -Winit-self -Winline -Winvalid-pch
-Wunsafe-loop-optimizations -Wlong-long -Wmissing-braces
-Wmissing-field-initializers -Wmissing-format-attribute
-Wmissing-include-dirs -Wmissing-noreturn -Wpacked -Wpadded
-Wparentheses -Wpointer-arith -Wredundant-decls -Wreturn-type
-Wsequence-point -Wshadow -Wsign-compare -Wstack-protector
-Wstrict-aliasing -Wstrict-aliasing=2 -Wswitch -Wswitch-default
-Wswitch-enum -Wtrigraphs -Wuninitialized -Wunknown-pragmas
-Wunreachable-code -Wunused -Wunused-function -Wunused-label
-Wunused-parameter -Wunused-value -Wunused-variable -Wvariadic-macros
-Wvolatile-register-var -Wwrite-strings

pode ser empregado. Ajuste essas opções conforme necessário com base no projeto específico e nas bibliotecas de terceiros usadas.

Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3