所以,你必须:
#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_xloop_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;
}
通过预处理器运行它并查看输出。 –
你确实知道预处理器只需要 *就可以用宏的主体替换宏调用?现在试着去替换你自己。 –
你究竟想在这里做什么?\ – SamGhatak