Я мог бы использовать что-то вроде предложения finally Java в переключателе C. В большинстве моих дел есть общий набор функций, которые я хотел бы поместить в одно дело. Я думал о реализации этого с помощью операторов goto, хорошо зная возможность обфускации кода gotos, помещая общий регистр внизу оператора switch все еще кажется «более чистым» способом сделать это, чем разделение общей функциональности на отдельные функции.
Во всяком случае, я пытался сделать что-то вроде этого:
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’
Есть предложения, как это сделать? Или, возможно, лучший подход?