私は、x86、x64、およびARMのアセンブラ命令の束を吐き出す式パーサを書いています。GCC C++警告:カッコを提案する
私はランダムな表現を生成し、GCCでコンパイルし、結果を自分のコードと比較する小さなアプリケーションを作成しました。
私はパーサーがGCCに似た警告を出したいと思っています。
私はGCC 5.1.0
int a = 100 + 100 | 10;
とGCCは、周りの警告提案括弧を与えることに気付きました|
しかし
int b = 100 * 100 | 10;
GCCは警告を与えません。
しかし、加算と乗算の両方がビットごとのORよりも優先順位が高いので、int b = expressionの警告はなぜですか?
私は非常に疲れているので、何か見落としている可能性があります。
個人的には、何が起こっているかを明確にするために、両方とも括弧を使用します –
https://gcc.gnu.org/onlinedocs/gcc-3.3.6/gcc/Warning-Options.html#index-Weparentheses- 201 –
私は個人的にどちらかにはカッコを使用しませんが、コンパイラが冗長構文を追加することを示唆する完全な無関心と確信しています。 – EJP