函数调用方式:cdecl, stdcall, fastcall的区别
C/C++语言有三种惘度谋裆常用的调用方式,分别是cdecl(C的调用方式)、stdcall(pascal调用方式或者标准调用调用方式)、fastc锾攒揉敫all(快速调用方式)。
对于cdecl调用方式和stdcall调用方式,他们的压栈顺序都是从右到左的,fastcall调用方式,它是使用寄存器来传参的。
cdecl调用方式与stdcall调用方式最大的区别是,edecl调用方式是调用者清栈的,而stdcall调用方式是被调函数在函数调用结束的时候自己请栈的。所以使用不定参数的函数,比如printf,就只能使用cdecl的调用方式了,因为被调函数不知道传入了几个参数,所以不知道如何请栈,所以不能使用stdcall的调用方式。
声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
阅读量:21
阅读量:48
阅读量:51
阅读量:87
阅读量:56