在dev和vc上相同的代码为什么结果不同,怎样计算的?

#include
int main()
{
int i = 1;
printf("%d %d %d", i , ++i, i++);
}
dev上是331
vc上是221
原因是什么

函数参数的求值顺序,是C语言的未定义行为,因此不同的编译器结果不同

明显两个都是从右向左计算的,个人认为第一个(dev)对。