Ich habe einen Ausdruck Parser geschrieben, der eine Reihe von Assembler-Anweisungen für x86, x64 und ARM ausspuckt.GCC C++ Warnung: vorschlagen Klammern
Um es zu testen Ich habe eine kleine App geschrieben, die zufällige Ausdrücke generiert, kompiliert sie mit GCC und vergleicht das Ergebnis mit meinem Code, so weit so gut.
Jetzt möchte ich, dass mein Parser ähnliche Warnungen wie GCC erzeugt.
Ich habe bemerkt, dass mit GCC 5.1.0
int a = 100 + 100 | 10;
GCC Warnung um ein vorgeschlagenes Klammern geben |
aber
int b = 100 * 100 | 10;
GCC gibt keine Warnung.
aber sowohl Addition als auch Multiplikation haben höhere Priorität als bitweises OR, also warum keine Warnung auf dem int b = Ausdruck?
Ich bin sehr müde lol so kann etwas übersehen haben.
Persönlich würde ich Klammern für beide verwenden, nur um klar zu machen, was passiert –
Siehe https://gcc.gnu.org/onlinedocs/gcc-3.3.6/gcc/Warning-Options.html#index-Wparentheses- 201 –
Persönlich würde ich keine Klammern für beide verwenden, und ich würde es sicherlich als völlige Unverschämtheit für einen Compiler betrachten, eine redundante Syntax hinzuzufügen. – EJP