如何初始化GLfloat数组?

0 c c++

我想在我创建的项目中添加一些照明,但是我得到以下编译器错误:

error C2440: 'initializing' : cannot convert from 'float' to 'GLfloat []' 
Run Code Online (Sandbox Code Playgroud)

问题是什么?

GLfloat ambientColor[] = {0.2f, 0.2f, 0.2f, 1.0f};
glLightModelfv(GL_LIGHT_MODEL_AMBIENT, ambientColor);


GLfloat lightColor0[] = (0.5f, 0.5f, 0.5f, 1.0f);
GLfloat lightPos0[] = (4.0f, 0.0f, 8.0f, 1.0f);

glLightfv(GL_LIGHT0, GL_DIFFUSE, lightColor0);
glLightfv(GL_LIGHT0, GL_DIFFUSE, lightPos0);

GLfloat lightColor1[] = (0.5f, 0.2f, 0.2f, 1.0f);
GLfloat lightPos1[] = (-1.0f, 0.5f, 0.5f, 0.0f);

glLightfv(GL_LIGHT1, GL_DIFFUSE, lightColor1);
glLightfv(GL_LIGHT1, GL_DIFFUSE, lightPos1);
Run Code Online (Sandbox Code Playgroud)

Hov*_*yan 5

您使用了错误的数组初始化语法.您不能使用()列出数组元素.
语法是{list_of_the_elements}

所以改变()到{}

GLfloat lightColor0[] = (0.5f, 0.5f, 0.5f, 1.0f);
Run Code Online (Sandbox Code Playgroud)

GLfloat lightColor0[] = {0.5f, 0.5f, 0.5f, 1.0f};
Run Code Online (Sandbox Code Playgroud)