考虑这个简单的程序:
fails.c:
#include <stdio.h>
int main(){
int i = 10;
if (i == 10)
int j = 11;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
无法编译(gcc fails.c),给出此错误:
fails.c: In function ‘main’:
fails.c:7:3: error: expected expression before ‘int’
int j = 11;
^
Run Code Online (Sandbox Code Playgroud)
但是这个很顺利:
#include <stdio.h>
int main(){
int i = 10;
if (i == 10){
int j = 11;
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我认为工作的目的是把它们放进{}去.但我想知道为什么这是必需的.
为什么它会以这种方式表现出来printf?
#include <stdio.h>
int main(){
int i = 10;
if (i == 10)
printf("some text\n");
return 0;
}
Run Code Online (Sandbox Code Playgroud)