1. C语言不严格要求变量声明放在可执行语句的前面,变量的声明可以选择就近原则,便于程序的阅读
2. 在C语言的switch结构中,在选择结构中用到的变量要在case之前进行声明,否则会出错
如:
void main()
{
int InputType;
switch (InputTpye)
{
case 1:
FILE * fp;
fp=fopen("Input.txt","r");
if(fp==NULL)
{
printf("Cannot open file!");
exit(0);
}
break;
case 2:
break;
default:
break;
}
}
编译,程序报错,提示 FILE * fp 作表达式非法,即程序认为case开始的语句均为可执行语句。
修改为下面的方式以后,再编译正确。
void main()
{
int InputType;
switch (InputTpye)
{
FILE * fp;
case 1:
fp=fopen("Input.txt","r");
if(fp==NULL)
{
printf("Cannot open file!");
exit(0);
}
break;
case 2:
break;
default:
break;
}
}