6

我是openGL的初学者。在所有简单的示例中,主函数都有参数,而 glutinit func 使用这些参数。但我不明白为什么它们是必要的。我在命令参数中什么也没写,程序仍然有效。它们是用来做什么的?能给我举个例子吗?

glutInit(&argc, argv)
4

3 回答 3

13

使用它们以便 GLUT 可以处理命令行参数。它有许多始终使用的参数。如果您不希望 GLUT 处理参数,只需传递如下内容:

{
  int argc = 1;
  char *argv[1] = {(char*)"Something"};
  glutInit(&argc, argv);
}
于 2013-01-19T03:30:43.343 回答
2

glutInit 用于初始化 GLUT 库。在 C 中,可以接受命令行参数。命令行参数在 DOS 或 Linux 等命令行操作系统中的程序名称之后给出,并从操作系统传递给程序。要在程序中使用命令行参数,您必须首先了解 main 函数的完整声明,该函数以前不接受任何参数。事实上, main 实际上可以接受两个参数:一个参数是命令行参数的数量,另一个参数是所有命令行参数的完整列表。

argcp:指向程序未修改的 argc 变量的指针。返回时, argcp 指向的值将被更新,因为 glutInit 提取任何用于 GLUT 库的命令行选项。argv:程序未修改的来自 main 的 argv 变量。与 argcp 一样,argv 的数据将被更新,因为 glutInit 提取 GLUT 库可以理解的任何命令行选项。

glutInit 也处理命令行选项,但具体的选项解析取决于窗口系统。

于 2014-05-11T16:42:20.743 回答
0

另一种情况是当unix main()接受命令行参数时,我们都不希望通过 GLUT 获得“管道”。

在这种情况下,我们应该在内部某处声明并初始化“自定义”GLUT 初始化变量main()

int foo = 1;
char * bar[1] = {" "};
glutInit(&foo, bar);
于 2016-04-29T23:31:09.853 回答