我可以使用類似的Java類finally從句在C開關。我的大部分案例都有一套共同的功能,我希望將一個案例放在一起。我正在考慮使用goto語句來實現這個功能,並且非常瞭解goto代碼混淆能力,將共享案例放在switch語句的底部,似乎是一種「乾淨」的方式,而不是將共享功能劃分爲單獨的功能。最終條款(可能使用GOTO)
反正,我一直在試圖做這樣的事情:
switch(x) {
case 0:
printf("Case 0\n");
goto case 2;
break;
case 1:
printf("Case 1\n");
goto case 2;
break;
case 2:
printf("Case 2\n");
break;
default:
// do nothing
break;
}
然而,使用gcc,這個失敗,錯誤
error: expected identifier or ‘*’ before ‘case’
如何使工作有什麼建議?或者可能更好的方法?
好了,這個工程。我只是覺得case語句是switch語句內部的標籤。 – Kenneth
@Kenneth:不在C中。他們在C#中(可能在Java中),因爲C#不允許你通過'case'語句,所以你使用'goto',在C中你會使用'/ /通過評論。 –
在生成的代碼中,它們的行爲與標籤相似,但在C語言中,它們不是。 –