我是新手,正在学习 C++(了解很多 Java),下面的代码让我感到困惑...
我知道这段代码片段正在处理一个指向函数的指针(它是一个回调,这是有道理的)但是让我失望的是返回类型和函数名称之间的参数。这他妈是什么鬼东西?
它看起来像一种函数,但我从未听说过它,甚至在搜索和阅读函数指针之后,我也找不到任何提到函数可以有类型的内容。
如果这是真的,如何定义函数类型?
谢谢,科迪
最佳答案
GLFWCALL
不是一种类型,它是一个扩展为特定于平台的调用约定的宏,或者是一个空字符串。这是 glfw.h 的一个修剪过的片段:
#if defined(_WIN32) && defined(GLFW_BUILD_DLL)
#define GLFWCALL __stdcall
#elif defined(_WIN32) && defined(GLFW_DLL)
#define GLFWCALL __stdcall
#else
/* We are either building/calling a static lib or we are non-win32 */
#define GLFWCALL
#endif
在 x86/win32 上使用正确的调用约定很重要,因为其中一些希望堆栈由被调用者清理,而另一些则由调用者清理。传递参数的顺序也可能有所不同。
关于C++函数类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13769249/