c - C 中的 "CALLBACK"声明有什么作用?

标签 c windows syntax callback

我正在查看 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/

相关文章:

c - 程序收到信号SIGSEGV、段错误、链表程序

c - C中匿名数组的使用 "expected ' ;' before ' }' token"

c - 输出不显示

javascript - 为什么在JavaScript中创建生成器迭代器时没有 `new`运算符?

c++ - 了解 C++ 重构语法

jquery - 正确的 jQuery 语法

c - 编写函数的 const 和非常量变体

c - 是否可以在 Eclipse 中导入/运行目标文件?

java - 如何在Java程序中启用和禁用KEY_WOW64_32KEY

python - 使用 tkinter 获取命令窗口输出以显示在小部件中