[t:/]$ 지식_

재귀함수를 goto로 쪼개기.

2017/11/27

나는 재귀함수를 더럽게 이해 못한다. 엊그제 재귀함수 디버깅을 하다가 어려워서 예전 경험을 살려 goto로 쪼개기를 시도했다.

... 실패했다 ...

오래전에 상태머신을 짤 때였다. 아마도 처음엔 if 문의 덩어리가 된다. 그리고 나서 메시지 루프로 갔다가는, 뭔가 OS CSW나 기타 사유로 작업간 스위칭의 문제나 크리티컬 섹션의 거시기가 걸려서 다시 if 문 덩어리로 들어온다.

그 다음에는 장문의 switch case 소설을 쓰기 시작한다. 곧이어 작문에 짜증이 나고 switch case를 배열에 의한 함수 포인터 즉시 참조로 바꾼다. 이제 깔끔해졌을까 하던 차에 goto를 이용하면 상태머신을 상당히 줄이고 빠르게 처리할 수 있음을 발견했다.

... 나는 엊그제 재귀함수를 goto로 풀다가 포기했다 ...

하아..









[t:/] is not "technology - root". dawnsea, rss