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

How to use a non-argument variable in function?

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

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

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

但是,它确实允许您通过 glfwSetWindowUserPointer and glfwGetWindowUserPointer "bind" 一些任意数据结构到 window 上下文,因此您可以探索将您的值编码到该结构中。