我被困在 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 代码中唯一具有该名称的函数,因此它不是重载问题。当它递归调用自身时,它会将 k 添加到 X 和 Y 数组中。把它放在 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 变量分别存在混淆。如果有的话,代码是靠运气工作的。
有任何想法吗?