Повторное использование переменных в C

Код, на который я смотрю, выглядит так:

for (i = 0; i < linesToFree; ++i ){
    printf("Parsing line[%d]\n", i);

    memset( &line, 0x00, 65 );
    strcpy( line, lines[i] );

    //get Number of words:
    int numWords = 0;

    tok = strtok(line , " \t");
    while (tok != NULL) {
        ++numWords;
        printf("Number of words is:  %d\n", numWords);
        println(tok);

        tok = strtok(NULL, " \t");
    }
}

Мой вопрос связан с использованием numWords. Использует ли система выполнения повторно эту переменную или она выделяет новую int каждый раз, когда проходит цикл for? Если вам интересно, почему я спрашиваю об этом, то я по профессии программист Java, который хочет попасть в HPC и поэтому пытается изучить C. Обычно я знаю, что вы хотите избежать такого кода, поэтому этот вопрос действительно исследовательский.

Я знаю, что ответ, вероятно, зависит от компилятора... Я ищу более глубокое объяснение, чем это. Предположите компилятор по вашему выбору.

8
задан Mateen Ulhaq 8 October 2011 в 21:21
поделиться