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;
}
}
C语言允许变量声明靠近使用位置,提高代码可读性。但在switch结构中,变量需在case之前声明,否则会导致编译错误。例如在给定的代码示例中,将FILE * fp声明移至switch语句外可解决编译问题。

3940

被折叠的 条评论
为什么被折叠?



