Maison >développement back-end >C++ >Quels sont les niveaux d'avertissement optimaux du compilateur pour les différents compilateurs C/C ?

Quels sont les niveaux d'avertissement optimaux du compilateur pour les différents compilateurs C/C ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-11-02 22:34:301100parcourir

What are the optimal compiler warning levels for different C/C   compilers?

Niveau d'avertissement optimal du compilateur pour C/C

Divers compilateurs C/C offrent différents niveaux d'avertissement, influençant la quantité et la gravité des avertissements signalés lors de la compilation. Voici quelques niveaux d'avertissement recommandés pour différents compilateurs :

GCC/G :

Pour GCC et G , le niveau recommandé est '-Wall'. Cela active tous les avertissements que le compilateur juge pertinents concernant des erreurs potentielles ou de mauvaises pratiques de codage.

Sun CC :

Pour Sun CC, '-xlist=custom' est recommandé , avec les indicateurs d'avertissement suivants :

  • -xtype
  • -xtype=boundcheck
  • -xtype=fullbounds
  • -xtypespace=follow
  • -xtype=uninitialized

aCC (HPUX) :

Pour aCC, '-qwarn all=on2' est conseillé. Cela active tous les avertissements disponibles, y compris le niveau de gravité le plus élevé.

Visual Studio :

Pour Visual Studio, « /W4 » est recommandé. Ce paramètre active tous les avertissements, à l'exception de ceux considérés par le compilateur comme trop bruyants ou potentiellement déroutants.

Intel :

Pour les compilateurs Intel C/C, '- Wall' est un bon point de départ. Des avertissements spécifiques supplémentaires peuvent être activés si nécessaire, tels que « -Wselect-any-enum-values ​​» ou « -Wno-unused-value ».

Drapeaux extra-paranoïaques GCC/G :

Pour une vigilance extrême, l'ensemble de drapeaux suivant peut être utilisé en plus de « -Wall » :

 -Weffc++ -pedantic -pedantic-errors -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

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn