gpt4 book ai didi

c++ - 如何将数据传递给 glutTimerFunc?

转载 作者:行者123 更新时间:2023-11-28 07:47:12 25 4
gpt4 key购买 nike

#include <gl/freeglut.h>

void Keyboard(int value){

glutTimerFunc(33,Keyboard,0);
}

int main(int argc, char **argv){
glutTimerFunc(33,Keyboard);
}

有没有办法不用全局变量就可以将数据从主函数传递到键盘函数?似乎函数 glutTimerFunc 只允许带有签名(int 值)的函数,这似乎非常严格。

最佳答案

so is there another way to get the data into another funcion without having them to be global?

就像其他人已经建议的那样:不要使用 GLUT。 GLUT 从来就不是真正应用的基础。这是一个用于小型 OpenGL 技术演示的小型框架。您遇到的问题是 C 和 C++ 缺少称为“闭包”或有时也称为“委托(delegate)”的概念。其他语言有它们,事实上,当您在这些语言中使用 GLUT 绑定(bind)时,您不会遇到问题。

由于 C/C++ 缺少闭包这一点非常突出,因此已经编写了一个小型库(在内部做一些疯狂但天才的事情),允许它在 C 中创建闭包。它被称为 ffcall,不幸的是似乎没有维护,但被项目用作 GNU Common Lisp 和 Scheme 编译器。

我已经在 StackOverflow 答案中写过关于使用 ffcall 的文章 https://stackoverflow.com/a/8375672/524368https://stackoverflow.com/a/10207698/524368

关于c++ - 如何将数据传递给 glutTimerFunc?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14662482/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com