问个蛋疼的有关问题同一句里面同时出现"++i,i,i,i++,i-的运算步骤

问个蛋疼的问题同一句里面同时出现",++i,--i,i,i++,i--的运算步骤
#include<stdio.h>
int main()
{
int i = 8;
printf("%d,%d,%d,%d,%d\n",++i,--i,i,i++,i--); 
return 0;
}

tc和vc编译结果不同
vc记不住了
tc里是
8,8,8,7,8

谁能告诉我输出结果中,的计算顺序是依据怎样的规则来的。
如果改成
printf("%d,%d,%d,%d,%d\n",++i,--i,i++,i--,i); 
那么结果是
8,8,7,8,8了

------解决方案--------------------
刚看了
http://bbs.****.net/topics/370153775
这个帖子,其实这个问题根本就没有解,知道其原理就行。
引用
如果在任何“完整表达式”(形成一段由顺序点结束的计算)里存在对同一“变量”的多个引用,那么表达式里就不应该出现对这一“变量”的副作用。否则就不能保证得到预期结果。