Объявить локальные переменные C89 в начале области?

Я пытался сделать это в ANSI C:

include <stdio.h>
int main()
{
    printf("%d", 22);
    int j = 0;
    return 0;
}

Это не работает в MicrosoftVisual C ++ 2010 (в проекте ANSI C). Вы получаете ошибку:

error C2143: syntax error : missing ';' before 'type'

Это работает:

include <stdio.h>
int main()
{
    int j = 0;
    printf("%d", 22);
    return 0;
}

Теперь я читал во многих местах, что вы должны объявлять переменные в начале блока кода, в котором существуют переменные. Это вообще верно для ANSI C89?

Я нашел много форумов, где люди дают этот совет, но я не видел его написанным ни в одном «официальном» источнике, таком какGNU C руководство по эксплуатации.

Ответы на вопрос(3)

Ваш ответ на вопрос