#include <stdio>
int main(){
int x = 4;
int y = 3;
int z;
z = x---y;
printf("%d" , z);
return 0;
}
Linux Mandrivaのgccコンパイラでは、(x--)-y
と評価されています。 なぜそうなのか混乱しています。 x - (--y)
でした。Cの式評価
私はいくつかの答えが優先順位テーブルを見て私に教えてくれることを知っています。私はそれらのすべてを通って行った、まだ疑いが残る。
誰かがこれを明確にしてください。
好奇心の高まりから、これは実装定義の動作ですか、標準では貪欲であることを強制していますか?異なるプラットフォーム/コンパイラでこの動作に頼ることはできますか? – RedX
@RedX:私はあなたがこれに頼ることができると確信しています。私は特定の参照を見つけることができませんが、その動作はCのためのこのレクサーによって暗示されています:http://www.lysator.liu.se/c/ANSI-C-grammar-l.html –