Объявить локальные переменные 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 руководство по эксплуатации.