uIP에서의 Protothread 원리 분석
1213 단어 단편기 - 하드웨어
Switch case의 특수 용도
먼저 아래의 코드를 보고 foobar(2)의 출력, foobar(3)의 출력을 분석한다.
void foobar(int status)
{
switch (status)
{
case 0:
printf("Got case0
");
do
{
case 2:
printf("Got case2
");
break;
}
while (1);
printf("Got p2.5
");
if (0)
{
case 3:
printf("Got case3
");
}
return;
}
}
이런 switch의 사용법은Protothread에서 현재 조건이 충족되지 않으면 이 함수를 종료할 수 있으며, 입력한 상태에 따라 바로 아까 장소(case)로 이동할 수 있습니다.
Protothread
Protothread는 위의 switch case 문장을 매크로 정의로 봉인합니다.Protothread는 현재 상태를 기록하는 변수를 사용합니다(문장줄 LINE).case의 곳은 바로LINE__,현재 조건이 계속 실행에 부합되지 않으면 이 함수를 종료하고 현재 상태를 로 표시합니다LINE__,다음에 이어서 집행하겠습니다.사용할 때는 현재의 논리에만 관심을 가지면 된다.