如何在函数中使用非参数变量?

How to use a non-argument variable in function?

本文关键字:参数 变量 函数      更新时间:2023-10-16

Learning opengGL(+glfw( 我遇到了有趣的事情:我只需要使用一种函数原型mouse_callbackglfwSetCursorPosCallback (Glfwwindow* , GLFWcursorposfun mouse_callback);我应该如何在mouse_callback中使用变量GLfloat yaw = -90.0f;而不将其作为参数(会有错误(或全局变量传递。

你不能。C 函数指针不支持绑定参数。通常,可以将指针传递给已将该值-90.0f烘焙到其中的特定函数,或使用全局变量。

是的,这很糟糕。这就是为什么C++引入了std::bind,然后是lambdas。不幸的是,OpenGL API不允许你使用这样的功能。

但是,它确实允许您通过glfwSetWindowUserPointerglfwGetWindowUserPointer将某些任意数据结构"绑定"到窗口上下文中,因此您可以探索将值编码到该结构中。