我正在查看 SDL 中的一些代码库并遇到了一个像这样声明的函数:
LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
现在,我是一名 Delphi 程序员。没有hablo C muy bien,先生。但我记得大学类(class)中的语法足够像这样阅读:
函数名称是 WndProc。参数列表是不言自明的。函数返回类型是 LRESULT。但是那个“CALLBACK”到底在做什么呢?在Delphi中,任何函数都可以作为回调;你只需要传递正确类型的函数指针。 C 不能那样工作有什么特别的原因吗?还是有什么不同的意思?
最佳答案
“CALLBACK”是一个调用约定。还有其他类型的调用约定。 CALLBACK 与 __stdcall 相同。
http://www.codeguru.com/cpp/cpp/cpp_mfc/callbacks/article.php/c10557
Raymond Chen 博客中的更多信息:
http://blogs.msdn.com/oldnewthing/archive/2004/01/08/48616.aspx
关于c - C 中的 "CALLBACK"声明有什么作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/530504/