обновление переменной цикла while - PullRequest
1 голос
/ 16 апреля 2011

Пожалуйста, посмотрите на этот код:

int page;
int stop = FALSE;

while (!stop) {
    printf("stop0  %i\n", stop);

    if (physmem[fifo_index % opts.phys_pages] == NULL) {
        stop = TRUE;
        page = fifo_index % opts.phys_pages;
        printf("stop1 %i\n", stop);

    } else if (physmem[fifo_index % opts.phys_pages]->gc_bit == 0) {
        physmem[fifo_index % opts.phys_pages]->gc_bit = 1;
        printf("stop2 %i\n", stop);

    } else if (physmem[fifo_index % opts.phys_pages]->gc_bit == 1) {
        stop = TRUE;
        page = fifo_index % opts.phys_pages;
        printf("stop3 %i\n", stop);

    }
    printf("sto4 %i\n", stop);

    fifo_index++;
    printf("stop5 %i\n", stop);

}

Вывод:

stop0  0
stop1 1
stop4 1
stop5 1
stop0  0 '<<< I dont understand this part'
stop1 1
stop4 1
stop5 1
          '<<<< The code exits here!! In the second loop...whyy??'

1 Ответ

0 голосов
/ 16 апреля 2011

Вы можете поставить printf над оператором while и проверить, вводите ли вы цикл дважды.

...