#define loop_x for (int x = 0; x < w; x++)
#define loop_y for (int y = 0; y < h; y++)
#define loop_xy loop_x loop_y
void game(int w, int h)
{
unsigned univ[h][w];
loop_xy univ[y][x] = rand() < RAND_MAX;
}
如何在不使用 #define 的情况下重写此代码?
最佳答案
所以你有:
#define loop_x for (int x = 0; x < w; x++)
#define loop_y for (int y = 0; y < h; y++)
#define loop_xy loop_x loop_y
void game(int w, int h)
{
unsigned univ[h][w];
loop_xy univ[y][x] = rand() < RAND_MAX;
}
首先将 loop_xy 解析为 loop_x loop_y:
#define loop_x for (int x = 0; x < w; x++)
#define loop_y for (int y = 0; y < h; y++)
#define loop_xy loop_x loop_y
void game(int w, int h)
{
unsigned univ[h][w];
loop_x loop_y univ[y][x] = rand() < RAND_MAX;
}
然后解析loop_x和loop_y:
#define loop_x for (int x = 0; x < w; x++)
#define loop_y for (int y = 0; y < h; y++)
#define loop_xy loop_x loop_y
void game(int w, int h)
{
unsigned univ[h][w];
for (int x = 0; x < w; x++) for (int y = 0; y < h; y++) univ[y][x] = rand() < RAND_MAX;
}
关于c - 如何用 C 语言编写这些循环而不是使用#define?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36936099/