C++ Warnung: schlagen Sie Klammern um Arithmetik in operand von |

Ich habe einen code wie

A = B|C|D|E;

Auslösen der Warnung "vorschlagen Klammern um Arithmetik in operand von |"

Erwarten, dass dieser Ausdruck muss mit hoher Priorität paranthesis für die Betreiber, versuchte Sie die folgenden Möglichkeiten:

A=(B|C)|(D|E);

einem mehr als :

A=(((B|C)|D)|E);

Immer noch die gleiche Warnung besteht weiterhin.

Bitte helfen Sie mir bei der Lösung dieses.

Dank,
Sujatha

B, C,D sind enums und E ist eine ganze Zahl.

  • welche compiler verwenden Sie?
  • Dein Beispiel kompiliert ohne Warnung mit GCC.
  • Was sind B, C, D und E, genau?
  • Sind A,B,C,D Makros?
  • compiler ist gcc-4.1.2.
  • Führen Sie Ihre Quell-Datei durch gcc -E und betrachten Sie die Ausgabe. Sind Sie absolut sicher, dass der compiler die Interpretationen von A, B, C, D, und E sind, was Sie denken, Sie sind?
  • kannst du die genauen compiler-Optionen, die Sie verwenden? (Auch ich kann nicht scheinen, um diese Warnung mit gcc-4.3 mit -Wall -Wextra)

InformationsquelleAutor Programmer | 2010-06-04
Schreibe einen Kommentar