我看到一些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'來檢查特定的標準 –