2

次のコンパイル エラー (のみ) が表示されます。

RuberSystem.cpp:425: 警告: フォーマット '%5f' はタイプ 'double' を想定していますが、引数 3 のタイプは 'int' です</p>

宣言は次のとおりです。

float x = 6000.0f;
float z = -6000.0f;
float lx = -6000.0f;
float lz = 6000.0f;
float angle = 0.0f;

425 行目は次のとおりです。

printf("Right pressed: angle=%5f\nx=%5f\nlx=%5f\nz=%5f\nlz=%5f",angle,x,lx,z,lz);

これらの変数が受ける唯一の操作は次のとおりです。

angle -= 0.01f;
lx = sin (angle);
lz = -cos (angle);

これらの操作を (float) でキャストしようとしましたが、うまくいきませんでした。

おそらく役に立つ情報: これは Visual Studio 8 の Windows マシンで動作し、現在 GNU g++ を使用して Macbook でコンパイルしています。Mac で使用するための適切な定義を既に設定しています。

編集:これらの変数に対してもう1つの操作が見つかりました:

gluLookAt(
  x, 1500.0, z,    // eye location
  x+lx, 0.0,   z+lz,    // center location
  0.0, 1.0,   0.0); //open GL function

gluLookAt のコードを調べたところ、フロートを取り込んでフロートのマトリックスに格納しているように見えるので、そこに問題があることもわかりませんが、共有するのは良いことだと思いました.

答え:私はばかです。呼び出しangle -= 0.01f;...ていたメソッドには、 と という名前の引数がint xありint y、したがってvoid processSpecialKeys(int key, int x, int y) {.

4

2 に答える 2

2

x425 行目で in effect の別の宣言がありますか? 例えば:

float x;
void func(int x) { ... }

// or

float x;

for (int x = ...)
{
}

// or

#define x ...
于 2012-11-28T02:10:16.753 に答える
0

回答: angle を呼び出していたメソッドには、と-= 0.01f;...という名前の引数がありました。したがって、. 助けてくれてありがとう。int xint yvoid processSpecialKeys(int key, int x, int y) {

于 2012-11-28T18:47:08.003 に答える