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

时间:2018-05-16 16:01:22

标签: c++ c opengl glfw

学习opengGL(+ glfw)我遇到了有趣的事情:我必须在mouse_callback中只使用一种函数原型glfwSetCursorPosCallback (Glfwwindow* , GLFWcursorposfun mouse_callback);我应该如何在GLfloat yaw = -90.0f;中使用变量mouse_callback {1}}不传递它作为参数(会有错误)或全局变量。

1 个答案:

答案 0 :(得分:4)

你做不到。 C函数指针不支持绑定参数。通常,您可以将指针传递给已经包含该值-90.0f的特定函数,或者使用全局变量。

是的,这很糟糕。这就是C ++引入std::bind,然后是lambdas的原因。不幸的是,OpenGL API不允许您使用此类功能。

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