0

だから私は次のものを持っています:

//at file scope
GLfloat point_colour[3] = {1.0, 0.5, 0.0};
...

void menu_colour(int index){
  switch(index){
    case RED: point_colour = {1.0, 0.0, 0.0}; break;
    case GREEN: point_colour = {0.0, 1.0, 0.0}; break;
    case BLUE: point_colour = {0.0, 0.0, 1.0}; break;
    case ORANGE: point_colour = {1.0, 0.5, 0.0}; break;
    case PURPLE: point_colour = {1.0, 0.0, 0.8}; break;
    default: point_colour = {1.0, 0.0, 0.0};
  }
}

しかし、私error: expected expression before '{' tokenはすべてのケースラインを取得します。

値の新しい配列を配列に割り当てようとしていますpoint_colour- 何か助けはありますか? 私はそれを完全に間違った方法でやっていると思います...

4

1 に答える 1

5

Cではこれを行うことはできません:

point_colour = {1.0, 0.0, 0.0};

= {1.0, 0.5, 0.0}オブジェクトの初期化時にのみ実行できます。配列は C の第 2 級市民であり、配列に代入することはできません。

できることは、配列の各要素に個別に値を割り当てることです。

point_colourがポインターの場合、複合リテラルを使用できます。

GLfloat *point_colour;

point_colour = (GLfloat []) {1.0, 0.5, 0.0};
于 2012-10-21T17:43:27.407 に答える