ISO C では、数学的に交換可能で結合可能であるが、対象となるアーキテクチャー上では実際にそうではない演算を再配置することは許可されていません。したがって、ISO C 文法の優先度と結合規則によって、すべての式のグループ化が完全に記述されます。すべての式は、解析されるとおりにグループ化されなければいけません。前述の式は、次の方法でグループ化されます。
i = { {*++p + f()} + g() };
このコードでもなお「f() が g() よりも前に呼び出されなければならない」、あるいは、「g() が呼び出されるよりも前に p が増分されなければならない」ということはありません。
ISO C では、予想外のオーバーフローが発生しないように式を分割する必要があります。