我需要“我需要”吗;3f“;在这些OpenGL函数的末尾? >好,所以我试着在C++中写一些代码,试着用一个疯狂的蹒跚学步的孩子做一些实验。但问题是每次你试图调用顶点或设置颜色时,我都会在3f上跌跌撞撞,你必须写glColor3f或glVertex3f

我需要“我需要”吗;3f“;在这些OpenGL函数的末尾? >好,所以我试着在C++中写一些代码,试着用一个疯狂的蹒跚学步的孩子做一些实验。但问题是每次你试图调用顶点或设置颜色时,我都会在3f上跌跌撞撞,你必须写glColor3f或glVertex3f,c++,opengl,freeglut,C++,Opengl,Freeglut,例如在这个三角形中 glBegin(GL_TRIANGLES); glColor3f(0.4,0.4,0.4,0.4) glVertex3f(x,y,z) glVertex3f(x,y,z) glVertex3f(x,y,z) 现在我本可以不去努力写: glBegin(GL_TRIANGLES); glColor(0.4,0.4,0.4,0.4) glVertex(x,y

例如在这个三角形中

glBegin(GL_TRIANGLES);
       glColor3f(0.4,0.4,0.4,0.4)
            glVertex3f(x,y,z)
            glVertex3f(x,y,z)
            glVertex3f(x,y,z)
现在我本可以不去努力写:

glBegin(GL_TRIANGLES);
       glColor(0.4,0.4,0.4,0.4)
            glVertex(x,y,z)
            glVertex(x,y,z)
            glVertex(x,y,z)
你看,如果没有一个
3f
,没有人向我解释为什么会有


请有人告诉我这是什么意思。我认为它就像某种十六进制或是63的东西,仍然没有任何意义

,因为OpenGL是一个C API,在C中没有函数重载,但OpenGL希望提供以特定格式直接提供数据的能力,这些函数有不同的命名版本和不同的参数类型

e、 g


如果你真的可以编译一个裸的
glVertex
,它是其他版本的一个快捷方式,但是我不相信这是按照规范的,所以你可能不应该使用它

由于OpenGL是一个C API,在C中没有函数重载,但OpenGL希望提供以特定格式直接提供数据的能力,因此这些函数有不同的命名版本,具有不同的参数类型

e、 g


如果你真的可以编译一个裸的
glVertex
,它是其他版本的一个快捷方式,但是我不相信这是按照规范的,所以你可能不应该使用它;代码>在它们的末尾。所以很多关于这个“代码”的东西都没有编译。“我本来可以不去努力,写下”不是C++,你不能。然后,在C++中,每一行都需要一个<代码>;代码>在它们的末尾。所以这个“代码”有很多是不可编译的。啊,你是说,因为没有函数重载,所以他们只添加了3f,这样就不会引起冲突,就像我的用户名是kitten67,但它可能只是kitten,但已经被拿走了,我不得不添加一个67@armanddebruijn:函数后缀。另外,您是在问这些后缀是什么意思,还是在问为什么您的代码没有后缀就可以工作?因为你的问题是这样写的,显然是后者。@Nicolas啊,那么函数后缀就是你所说的,好吧,我明白了,我想是的,我想知道为什么没有它们它可以工作,但为什么特别是一个“3”和一个“f”3f@armanddebruijn我会说没有它就不行(我从未见过它)。您在哪个操作系统上使用freeglut<代码>3f在Nicol的链接中进行了解释<代码> 3 < /COD>是参数的数目,<代码> f>代码>代表代码> GLfloat < /Cord>,它可能总是<代码>浮点 .@ ARMANDDEBRUIJN:只是FIY:编译C++代码时,编译器会根据参数来修改函数名,因此,为了避免名称冲突,并且在链接程序时,根据传递参数的类型,使用正确的重载函数。在C++中它是在后台发生的,在C中它是由程序员明确的。AH,所以你的话,因为没有函数重载,它们只是添加了3F,所以它不会引起冲突,就像我的用户名是KITUN67,但它本来就是小猫,但是已经很无奈地把我加了一个。67@armanddebruijn:函数后缀。另外,您是在问这些后缀是什么意思,还是在问为什么您的代码没有后缀就可以工作?因为你的问题是这样写的,显然是后者。@Nicolas啊,那么函数后缀就是你所说的,好吧,我明白了,我想是的,我想知道为什么没有它们它可以工作,但为什么特别是一个“3”和一个“f”3f@armanddebruijn我会说没有它就不行(我从未见过它)。您在哪个操作系统上使用freeglut<代码>3f在Nicol的链接中进行了解释<代码> 3 < /COD>是参数的数目,<代码> f>代码>代表代码> GLfloat < /Cord>,它可能总是<代码>浮点 .@ ARMANDDEBRUIJN:只是FIY:编译C++代码时,编译器会根据参数来修改函数名,因此,为了避免名称冲突,并且在链接程序时,根据传递参数的类型,使用正确的重载函数。在C++中,它在幕后发生,C中它是由程序员明确地完成的。