但是,每当我在switch语句中包含默认大小写并将其保留为空时,我必须在默认大小写或编译器错误中加一个分号:“line [switch switch of line statement of line statement]`missing’;’在’}’之前发生.为什么?!
示例:生成编译器错误
switch(direction) { case MOVE_UP: //... break; case MOVE_RIGHT: //... break; case MOVE_DOWN: //... break; case MOVE_left: //... break; default: /* DO nothing */}
示例:不会产生编译器错误
switch(direction) { case MOVE_UP: //... break; case MOVE_RIGHT: //... break; case MOVE_DOWN: //... break; case MOVE_left: //... break; default: /* DO nothing */;}解决方法 C 03中的6.1 / 1给出了带标签的语句的语法:
labeled-statement: IDentifIEr : statement case constant-Expression : statement default : statement
C 11是相同的,除了您可以在标签之前具有属性.
零长度的标记序列不是C语句,因此默认情况下:它本身不是标记语句.
也就是说,我不知道为什么标签语句的语法不允许默认的原因是什么:statementopt.如果它确实存在,那么如果你写了默认值就会出现语法歧义:case 1:break;,无论是1还是break;是属于default的语句:,或者default:是否没有自己的语句,但后面紧跟一个语句.毫无疑问它意味着什么,但也许它被认为会弄乱人们的解析器.
总结以上是内存溢出为你收集整理的c:switch语句在close括号之前缺少分号全部内容,希望文章能够帮你解决c:switch语句在close括号之前缺少分号所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)