写项目遇到的一些问题

2025-09-13  本文已影响0人  既然楼层

switch(input)

{case 1:

char  arr[20];

break;

}          //报错:声明不能包含标签

C 语言的语法设计要求:

标签后必须是语句(如 break;、{...})。

声明不是语句,因此不能直接跟在标签后。

int  x=10;  如果x是全局变量,认为是声明

如果是局部变量,可以认为是声明,也可以认为是语句(MSVC 编译器认为只能是声明)

这导致

switch(input)

{case 1:

char  arr[20]="hello world";

break;

}在MSVC 编译器中报错 ,GCC/Clang不报错

解决办法:使用{}包含case:间的代码(包括break;)

这样创建的变量只能在它所在的case:内使用

上一篇 下一篇

猜你喜欢

热点阅读