在if语句中单独声明?

Sab*_*ina 5 c declaration language-lawyer

我不明白为什么会这样:

if(1)
{
    int i;
}
Run Code Online (Sandbox Code Playgroud)

而这不是:

if(1) 
    int i;
Run Code Online (Sandbox Code Playgroud)

错误:int之前的预期表达式

如果你能提供一些标准参考.

Ker*_* SB 7

在C中,声明只能作为复合语句的一部分出现,而不能作为任何其他类型语句的一部分出现(参见C11 6.8和6.8.2).