Код, на который я смотрю, выглядит так:
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. Обычно я знаю, что вы хотите избежать такого кода, поэтому этот вопрос действительно исследовательский.
Я знаю, что ответ, вероятно, зависит от компилятора... Я ищу более глубокое объяснение, чем это. Предположите компилятор по вашему выбору.