Deaktivieren Sie bestimmte Warnungen in gcc
-
22-08-2019 - |
Frage
Ein Microsoft-Compiler können spezifische Warnungen mit einem Pragma deaktiviert werden, ohne andere Warnungen zu deaktivieren. Dies ist eine äußerst nützliche Funktion, wenn der Compiler über etwas warnt, dass „hat zu tun“.
Ist GCC an dieser Stelle eine ähnliche Funktion haben? Es scheint wie ein offensichtliches genug Merkmal, dass seine unvorstellbar, dass es diese Funktion nicht noch haben würde, aber ältere Informationen im Internet schlägt diese Funktion nicht vorhanden.
Was ist ein in GCC zu benutzen?
Insbesondere möchte ich Multi-Zeichenkonstanten verwenden, wie 'abc'. Diese bewerten effektiv als Basis 256 Nummer - eine sehr praktische Funktion, aber es löst eine Warnung aus. Es ist sehr praktisch für die in einer Case-Anweisung auf vier Zeichenketten wechseln.
Lösung
Dies kann mit gcc erfolgen Diagnose pragmas .
Andere Tipps
Von dem gcc Handbuch:
Many options have long names starting with -f or with -W---for example,
-fforce-mem, -fstrength-reduce, -Wformat and so on. Most of these have
both positive and negative forms; the negative form of -ffoo would be
-fno-foo. This manual documents only one of these two forms, whichever
one is not the default.
Aber wenn Sie fragen, ob es eine Source-Level-Warnung deaktivieren, ich bin mir nicht bewusst, wenn diese Funktion in gcc vorhanden ist.
-Wno-multichar :
Sie nicht warnen, wenn ein aus mehreren Konstante ( ‚FOOF‘) verwendet wird. Normalerweise zeigen sie einen Tippfehler in des Benutzers Code, da sie die Implementierung definiert Werte haben, und sollte nicht verwendet werden in portablen Code.
Innerhalb Quellcode schreiben:
#pragma GCC diagnostic ignored "-Wno-multichar"
// code with warnings but wont be displayed now...