我有一个简单的函数可以记住几个以前的值。有人可以帮助我使这个功能更紧凑。更确切地说,我希望以更优化的方式完成所有任务。如果有人帮助我,我将非常感激。
xy snake_body(int x,int y)
{
xy body;
body.x = x_loop_16;
body.y = y_loop_16;
x_loop_16 = x_loop_15;
y_loop_16 = y_loop_15;
x_loop_15 = x_loop_14;
y_loop_15 = y_loop_14;
x_loop_14 = x_loop_13;
y_loop_14 = y_loop_13;
x_loop_13 = x_loop_12;
y_loop_13 = y_loop_12;
x_loop_12 = x_loop_11;
y_loop_12 = y_loop_11;
x_loop_11 = x_loop_10;
y_loop_11 = y_loop_10;
x_loop_10 = x_loop_9;
y_loop_10 = y_loop_9;
x_loop_9 = x_loop_8;
y_loop_9 = y_loop_8;
x_loop_8 = x_loop_7;
y_loop_8 = y_loop_7;
x_loop_7 = x_loop_6;
y_loop_7 = y_loop_6;
x_loop_6 = x_loop_5;
y_loop_6 = y_loop_5;
x_loop_5 = x_loop_4;
y_loop_5 = y_loop_4;
x_loop_4 = x_loop_3;
y_loop_4 = y_loop_3;
x_loop_3 = x_loop_2;
y_loop_3 = y_loop_2;
x_loop_2 = x_loop_1;
y_loop_2 = y_loop_1;
x_loop_1 = x;
y_loop_1 = y;
return body;
}
" XY"是一个结构变量。我用它来存储来自" x"的数据。和" y",还有来自" snake_body"的多次回复功能。我希望我足够具体,如果有任何问题,我会尽快回复。谢谢。
答案 0 :(得分:0)
不使用2x16变量,只需使用两个数组并循环遍历它。
你大概想要这个:
int x_loop[16];
int y_loop[16];
xy snake_body(int x, int y)
{
xy body;
body.x = x_loop]15];
body.y = y_loop[15];
for (int i = 15; i > 0; i--)
{
x_loop[i] = x_loop[i - 1];
y_loop[i] = y_loop[i - 1];
}
x_loop[0] = x;
y_loop[0] = y;
return body;
}
但是有更优雅的方法来解决这个问题,特别是使用循环缓冲区。