我看到一些C代码: INT检查= 10:C语言中这种switch case的语法是什么意思?
switch(check) {
case 1...9: printf("It is 2 to 9");break;
case 10: printf("It is 10");break;
}
是什么case 1...9:
是什么意思?它是否被禁止?
我看到一些C代码: INT检查= 10:C语言中这种switch case的语法是什么意思?
switch(check) {
case 1...9: printf("It is 2 to 9");break;
case 10: printf("It is 10");break;
}
是什么case 1...9:
是什么意思?它是否被禁止?
这是一个名为的GNU C扩展,案例范围为。
http://gcc.gnu.org/onlinedocs/gcc/Case-Ranges.html
正如文件中指出的那样,你必须把范围的低值和高值之间的空间。
case 1 ... 9:
statement;
等同于:
case 1:
case 2:
case 3:
case 4:
case 5:
case 6:
case 7:
case 8:
case 9:
statement;
好的,谢谢,但是这个GNU C是标准C还是由C99支持? – user2131316
据我所知,1 ... 9是一个语法错误,需要一个空格。 –
@ user2131316 GNU C不是C.它是C. – ouah
这是gcc extension
,以通常这出与gcc
至少是使用-pedantic
说法,他们最简单的方法:
gcc -pedantic
将发出警告:
warning: range expressions in switch statements are non-standard [-pedantic]
,如果你想检查针对特定的标准,例如c99
,你做如下:
gcc -std=c99 -pedantic
此外,这是不正确的:
case 1...9:
您需要的点之间的空间和数字:
case 1 ... 9:
如document指出:
小心:在...周围写空格,否则在整数值中使用它时可能会解析错误。
谢谢你男人,我基本上可以猜出这是什么意思,但我需要得到证实,并知道这是否是有标准的? – user2131316
@ user2131316正如我在下面指出的,你可以使用'gcc -std = c99 -pedantic'来检查特定的标准 –