在gcc中,所有函数调用默认都是cdecl方式调用,但是vc中,静态函数是cdecl调用,成员函数是thiscall方式调用的,虽然可以强制指定某个函数使用cdecl,但是如何禁用thiscall,全部使用cdecl呢?
class A
{
int __cdecl test(); // 强制使用cdecl方式
int test1(); // 默认是thiscall
};
如何禁用thiscall,全部使用cdecl呢?
class A
{
int __cdecl test(); // 强制使用cdecl方式
int test1(); // 默认是thiscall
};
如何禁用thiscall,全部使用cdecl呢?
看下这个 我觉得没必要禁用thiscall吧 它就是干这个用的
gcc的类成员 不是这么设计的?
用过的 指点一下 有啥区别
thiscall的this指针则是用ecx传递的
gcc全都是用cdecl,vc默认使用thiscall
最后一个压入栈中,thiscall通过ECX传递。
如果你需要其他的调用约定,如_cdecl,可以将成员函数声明为静态的,如 static void _cdecl fun();
不加static的话,_cdecl会被忽略.