Документация по ключевому слову static в состояниях MSDN может использоваться в следующих ситуациях:
- Когда вы объявляете переменную или функцию в области видимости файла.
- Когда вы объявляете переменную в функции ...
- Когда вы объявляете член данных в объявлении класса
- Когда вы объявляете функцию-член в объявлении класса ...
Использование ключевого слова static
для объявления локальной области действия здесь не указано, поэтому недопустимо.
Если вы попытаетесь записать его в теле функции:
void foo(){
static{
int i = 0;
}
}
это приведет к "ошибке C2143: синтаксическая ошибка: отсутствует ';'до '{' ', потому что ожидается объявление переменной.Если вы замените static{
на static;{
, ключевое слово static игнорируется, поэтому ваш код становится компилируемым, но компилятор все равно предупредит вас: "предупреждение C4091:« статическое »: игнорируется слева от« int »когда переменная не объявлена ".
Если вы попытаетесь записать ее вне тела функции, это приведет к ошибке " C2447: '{':отсутствует заголовок функции (формальный список старого стиля?) ", поскольку ожидается объявление функции.