void DrawState(){
char statevar[1000] = {0};
//bla bla bla
something = showmenu(); // or showscreen() or showinput()
if(something){
// change state
state = new_state;
}else{
// return to previous state
state = return_state;
}
// draw new state here.
DrawState();
}
I 때 상태 변경을 실행하려면이 기능이 필요합니다. 하지만 이렇게 재귀 적으로 쓰면 메모리가 너무 많이 소모되어 결국 시스템이 손상됩니다. 내가이 일을하지 않을 때 나는 외부에서 스스로를 부르는 법을 모른다.
누군가가 어떤 생각을 갖고 있습니까?
편집 : 이것은 플러그인과 같이 관리자 소프트웨어를 통해 실행되는 라이브러리입니다. 백그라운드 작업은이 구현으로도 작동해야합니다. 어쩌면이 일을 어떤 상황에서 실행해야 할 것입니다.
국가는 어떻게 결국 끝나나요? 그것이 충돌하는 이유입니다. 계속 함수를 호출하면 끝이 없습니다. 'state'가 목표에 도달하면 어떤 종류의 수익이 필요합니다. – JonH
'DrawState'를 재귀 적으로 쓰는 대신 오히려 * 콜백 * (옵저버 사용)처럼 사용하고자하는 것 같습니다. –
시작시이 메서드를 입력하면 실행되는 동안 모든 상태를 처리합니다. 그것은 끝나지 않습니다. –