func(i, i++)の落とし穴 評価順序の違い

Twitterで流れてきてふと気になったので備忘録。 もっぱら高級言語ばっかり触ってきたので一瞬わからなかったのですが、C言語ではこのようなコードはコンパイラ依存で結果が変わります。 ANSI-Cの規格書に目を通したわけではないので間違いがあったらご指摘いただけると幸いです。