У меня есть простой вопрос о статических переменных. Если я объявлена статической переменной в функции:Локальная область статической переменной в C
void main()
{
int k = 0
while(k<=4)
{
fun();
k++;
}
}
int fun()
{
static int i=5;
i++;
printf(Value %d\t", i);
return 0;
}
Как я знаю, функция будет освобождать после возвращения. Но где хранится значение i
. Является статической переменной как глобальная переменная.
'Статично как глобальная переменная.' Нет !!!! это то же самое с точки зрения времени жизни. Различные с точки зрения видимости. –
Сначала исправьте ошибки синтаксиса, а затем перейдите к философским вопросам :) –
В спецификации C не указано, где должны храниться переменные, а только то, что время жизни локальных статических переменных находится над всей программой. Однако компиляторы обычно хранят локальные статические переменные вместе с глобальными переменными. –