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
Libérer: 2024-11-02 22:34:30
original
1137 Les gens l'ont consulté

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
Copier après la connexion

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 de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal