一个非常奇怪的问题,需要高手!
kmzwm 2005-11-15 11:25:18 我在linux下,写了一个c++程序,使用g++进行编译,该程序调用c的一个函数,c的源代码是用gcc编译的,我用gdb调试时,发现一个很奇怪的事情:在C++的代码处,调用函数传入给被调用函数参数在被改变了!简单地说:
extern "C" { f2(int a, int b ,int c);}
class A
{
public:
int f();
};
int A:f()
{
f2(1, 2, 3);
}
用gdb调试时,进入f2看a,b,c发现并不是传进去的1,2,3!
这是什么原因啊!我想通常参数发生改变,可能是参数压栈顺序不同,但g++和gcc不会存这个问题!哪位高手知道!