可以认为最先由微软搞出来了__stdcall, 其实就是和WINAPI的声明是一样的,入栈顺序是从右到左,函数返回时,会进行出栈操作. PASCAL语言是非常古老的编程语言,在C语言之前,因此在当时的时代中,PASCAL的调用约定也是__stdcall 后来在C语言中发现__stdcall不支持变长参数的函数调用,比如printf,可以携带任意N个参数.我们查看WINDOWS的API,是找不到类似这样的函数声明的. 因此在C语言中,就使用了另外一种调用约定:__cdecl ,为了解决任意参数的问…