gcc上面的引用传参与左加加优化问题


int TestFunc(int& var1,char* var2){
var2[var1++]=++var1;
}
int main(){
int a=0;
int c=0;
char b[4]={0};
TestFunc(a,b);
b[c++]=++c;
cout<<a<<endl;
cout<<c<<endl;
}

在VS2010上面跑,ac均为2,这个结果比较容易接受,因为TestFunc第一个参数传的是引用,但是在gcc上,a=1,c=2.这个就比较郁闷了,所以我想问一下,gcc上为什么会出现这个情况,它采用了什么优化措施没?

c C++

甜蜜的死亡 10 years, 5 months ago

int TestFunc(int& var1,char* var2){
var[var2++]=++var1;
}
这里边的var是啥?笔误了吧?

o4love1 answered 10 years, 5 months ago

Your Answer