C コードの再帰関数に行き詰まっています (C コードは書いていません)。ここに私が変換しているスニペットがあります:
int makeroad(float x1, float y1, float x2, float y2, float var, float X[], float Y[], float prec)
{
//stuff
k+=makeroad(x,y,x2,y2,var,X+k,Y+k,prec);
}
これが何をしているのか完全にはわかりません。これは、C コードでその名前を持つ唯一の関数であるため、オーバーロードの問題ではありません。それ自体を再帰的に呼び出すと、X および Y 配列に k が追加されます。C# に入れると次のようになります。
int makeroad (float x1, float y1, float x2, float y2, float var, float[] X, float[] Y, float prec)
{
//stuff
k += makeroad(x, y, x2, y2, var, X + k, Y + k, prec);
}
Visual Studio は、X + k と Y + k が無効であることを教えてくれます。元の C コードはコンパイルされ、Visual C++ Express 2010 で正常に動作します。大文字と小文字の x 変数と y 変数がそれぞれ混乱したとは思いません。あった場合、コードはまったくの運で機能しています。
何か案は?