-3
#include <stdio.h>
void foo()
{
int a = 10;
static int sa = 10;
a += 5;
sa += 5;
printf("a = %d, sa = %d\n", a, sa);
}
int main()
{
int i;
for (i = 0; i < 10; ++i) {
foo();
}
}
Я понимаю, что «статическая переменная внутри функции сохраняет свое значение между вызовами». Если я хочу сбросить значение «sa = 10» позже, как я могу это достичь?как сбросить значение статической переменной внутри функции в C?
Это будет делать это, но теперь написать связный (один line) определение функции. Это довольно неприятно описать - это говорит о наличии недостатка в дизайне. Проблемы присущи использованию переменной-переменной 'static'. Это не противоречит вашему ответу, который решает этот вопрос, но он комментирует дизайн, подразумеваемый или предложенный вопросом. –