为什么使用__stdcall作为函数指针

时间:2014-11-05 20:22:30

标签: c++ c function-pointers stdcall

我正在查看一些代码,例如此处提到的代码:Function pointers for winapi functions (stdcall/cdecl)Function pointer and calling convention等。

将函数指针的调用类型声明为__stdcall有什么需要,有什么好处?

为什么要声明函数指针的调用类型?

1 个答案:

答案 0 :(得分:3)

在函数指针中嵌入一个调用约定说明符允许您在通过该指针调用函数时使用该调用约定。 __stdcall是用于调用Win32 API函数的调用约定。

在函数指针中指定它的好处是能够根据代码的需要匹配不同的调用约定(例如,通过late binding加载外部库的函数时)。库头应该将它们指定为良好的编程习惯。

但有一点需要注意:如果在函数指针中嵌入了错误的调用约定,编译器可能无法帮助您检测到它,并且您可能最终会在运行时做坏事。