Я изучаю классы хранения в C.I имеют простой кодСтатические переменные локальными для работы
enter code here
int f1()
{
static int i=0;
i++;
printf("%d",i);
}
int f2()
{
printf("%d",i);
}
int main()
{
f1();f2();f1();f2();
}
Компилятор дает ошибку как «я» не декларируется в f2(). Как я думал, статические переменные памяти выделяются в разделе данных программной памяти. Таким образом, любая функция в этом файле должна иметь к ней доступ.
Как компилятор знает, что переменная, локально объявленная в функции, ограничена только этой функцией? Как компилятор оценивает это?
http://stackoverflow.com/questions/6223355/static-variables-in-class-methods Возможный ответ –