aがvolatile指定されていた場合、
a=c; b=a; はaに対してwriteとreadが1回ずつ発生するが、
b=a=c; はaからreadする保証が無い。

ってことか?