#include<stdio.h>
int main()
{
int n=0, i=2;
switch(1)
{
case 0:do
{
case 1: n++;
case 2: n++;
}while(--i > 0);
}
printf("n = %d",n);
}
케이스 1과 케이스 2가 케이스 0에 있고 케이스 1이 케이스 0에 있기 때문에 위의 코드에 대한 출력이 0 일 것으로 예상됩니다. 따라서 실행되지 않으며 케이스 1 또는 2가되지 않습니다.switch case do 중첩 할 때
값은 4가 될 것입니다.
각 사례는 원자 코드 블록이어야합니다. 다른 사례에서는 사례를 중첩 할 수 없습니다. –
@BrianDriscoll : 그게 무슨 뜻이야? 스위치 케이스는 반드시 블록 일 필요는 없습니다. –
http://stackoverflow.com/questions/514118/how-does-duffs-device-work – mafso