月度归档:2013年03月

_stdcall与_cdel及_fastcall区别(以及什么是平衡堆栈)

最近忙着实习,好久没写博文了,赶紧来补一个。
我们在写c/c++程序时都会用到函数,那么函数在调用时怎么保存参数,怎么执行调用呢。
CISC(如x86)机器上由于寄存器个数有限,参数使用堆栈来保存。而保存参数的顺序,在哪里平衡堆栈(清理参数)的约定称作calling convention(调用方法)。
c/c++上我们可以在函数开头通过_cdel _stdcall _fastcall等标记来指定函数的调用方法。c/c++默认的调用方法_cdel。
继续阅读