愚蠢的论点

时间:2013-01-19 02:00:38

标签: opengl

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

glutInit(&argc, argv)

3 个答案:

答案 0 :(得分:9)

使用它们以便GLUT可以处理命令行参数。它总是使用许多参数。如果你不想让GLUT处理参数,只需传递这样的东西:

{
  int argc = 1;
  char *argv[1] = {(char*)"Something"};
  glutInit(&argc, argv);
}

答案 1 :(得分:2)

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

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

glutInit还处理命令行选项,但特定选项解析依赖于窗口系统。

答案 2 :(得分:0)

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

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

int foo = 1;
char * bar[1] = {" "};
glutInit(&foo, bar);