C++ では、一部のコンテキストでは、括弧によって囲まれた式の意味が変わる場合があります (特定のコンテキストに対して)。たとえば、 decltype(expr) と decltype((expr)) はしばしば異なる型を生成します:
int x;
decltype(x) a=x; // type int; a initialized with a copy of x
decltype((x)) b=x;//type int&; b is a reference to x; extra parentheses matter!
しかし、Cはどうですか?
マクロ パラメーターを括弧で囲むことは、C では一般的な方法ですが、予期しない副作用が発生する可能性はありますか?
[編集] より正確には、括弧がグループ化に冗長である場合、プログラムの意味を変更できますか?
式のみを考慮します (型、関数パラメーター リストなどの他の構文要素は考慮しません)。