C 스위치에서 javas finally 절과 같은 것을 사용할 수 있습니다. 대부분의 사례에는 공통된 기능 세트가있어 하나의 사례를 넣고 싶습니다. 나는 고토 문을 사용하여 이것을 구현하려고 생각하고 있었고, gotos 코드 난독 화 능력을 잘 알고 있었고 switch 문 아래쪽에 공유 된 사례를 넣는 것은 공유 기능을 별도의 기능으로 분할하는 것보다 "깨끗한"방법으로 보인다. C 스위치 문의 마지막 절 (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#에서는'case' 문을 쓰지 않기 때문에 C# (그리고 아마도 Java)에 있기 때문에'goto'를 사용합니다. C에서는'//코멘트를 통해 가을. –
내부적으로 생성 된 코드에서 레이블처럼 작동하지만 구문 적으로 C에서는 작동하지 않습니다. –