Quote:
Originally Posted by CaHbKo
Обоснуй.
|
Да как два пальца:
static после иницализации существуют всегда, пока не отключишь серв, и вот ради какого-то цикла ты хочешь выделить в памяти сервера место, которое будет занято всегда, под массив для этого цикла?!
А теперь на пальцах:
Что рациональнее для цикла:
pawn Код:
for(new i, variable; i != 10; i++)
{
if(i == 3) variable = 9999;
printf("variable: %d", variable);
}
и твоя переменная после 3 итерации всегда будет 9999. И при этом место в памяти освободится после того как цикл прекратит свою работу.
Для чего нужен
static, на примере банального счетчика.
pawn Код:
public OnGameModeInit()
{
SetTimer("MyCount", 1000, 1);
return 1;
}
forwrad MyCount();
public MyCount()
{
static count = -1;
if (count == -1)
{
count = 10;
}
else
{
printf("MyCount: %d", count);
count--;
}
}
вот для того чтобы переменная существовала только внутри паблика, не вылазила в область видимости глобальных переменных, но при этом и не обнулялась при каждом вызове паблика и существует
static.