|
펑션 테이블도 괜찮은 방법입니다. 한번 써보세요
GetStatus() 에서 리턴하는 값의 범위가 변하지 않는다면 가능합니다.
typedef int (* MyFunc)(void);
MyFunc FunctionMap[MAX_STATUS];
// 이곳에서 펑션들 맵핑을 시킵니다.
Initialize();
그리고 사용할떄는
while(1)
{
FuntionaMap[GetStatus()];
}
이렇게 하면 되겠네요..
종종 쓰이는 방법입니다.
그럼 좋은 하루 되세요..
sulzip 님이 쓰신 글 :
: 소스까진... 하지만 구현해보면
:
: bool Status;
:
: while(1)
: {
: Status = GetStatus(); //어떤 값의 상태가 0,1로 계속 바뀌면서 옴
: switch(Status)
: {
: case 0 :
: Fuction1(); //그래서 0이오면 Fuction1()를 수행
: break;
: case 1 :
: Fuction2(); //1 이 오면 Fuction2() 수행
: break;
: }//switch - end
: }//while - end
:
:
: 실시간 제어를 할려고 하는데요
: 상태를 읽어오는 즉시 상태를 처리하는 함수를 수행시켜야 되는데
: Switch 나 if 문 방법말고 더 빨리 해당하는 함수를 수행시키고 싶다는 것입니다.
: 굉장히 빨리 응답처리 해야되는 경우가 생겨서요( 거의 RealTime )
: 기존의 분기문이나 조건문 말고 또다른 함수 수행법이 있나 해서 질문 올렸답니다.
:
: 고맙습니다.
:
:
|