为啥msvc类的编译器默认的调用约定是cdecl

cdecl早就随着C语言的流行,在x86上成为了事实标准。msvc只是随大流。
cdecl的主要优点是方便实现变长参数表,如printf。

■网友
但是win32 api除了少数几个可变参数个数的,全部是stdcall。
■网友
【为啥msvc类的编译器默认的调用约定是cdecl】 问题你用的是C语言啊。而且每次调用就多了一个指令也没那么夸张啊。

■网友
按照我的理解cdecl应该是C Declaration的意思。而且x64 Windows已经全部统一为fastcall了


    推荐阅读