평범한 오래된 c를 사용하고 있습니다.재진입 불가능 함수 재진입
정적 로컬 변수를 사용하는 함수가 있기 때문에 재 호출 할 수 없습니다. 정적 인 지역의 사용을 제거하고 함수를 재진입 성으로 만들고 싶습니다.
방법에 대한 팁이나 권장 사항은 무엇인가요?
이 질문은 너무 막연한가요? 현재 작업중인 디자인에 대한 자세한 내용이 필요합니까? 아니면 이러한 상황에서 따라야 할 일반적인 디자인 패턴이 있습니까?
평범한 오래된 c를 사용하고 있습니다.재진입 불가능 함수 재진입
정적 로컬 변수를 사용하는 함수가 있기 때문에 재 호출 할 수 없습니다. 정적 인 지역의 사용을 제거하고 함수를 재진입 성으로 만들고 싶습니다.
방법에 대한 팁이나 권장 사항은 무엇인가요?
이 질문은 너무 막연한가요? 현재 작업중인 디자인에 대한 자세한 내용이 필요합니까? 아니면 이러한 상황에서 따라야 할 일반적인 디자인 패턴이 있습니까?
상태를 유지하기 위해 정적 로컬을 사용하는 대신 발신자가 해당 상태 변수를 매개 변수로 함수에 전달하게합니다. 그것은 당신의 발신자가 주를 유지해야한다는 것을 의미하지만, 그것은 당신이 어쨌든 원하는 것입니다.
이 솔루션 중 하나를 사용하여 코드를 보호 할 수 있습니다 :
일반적으로 기존 기능에는 사용할 수 없으므로 다른 인터페이스로 새 기능을 만들어야합니다. 'strtok()'와'strtok_r()'의 차이점을 보자. – Barmar
* 현재 작업하고있는 디자인에 대한 자세한 정보가 필요합니까? * 예, 자세한 내용이 필요합니다. – 0decimal0
이 게시물을보십시오 : http : //stackoverflow.com/questions/261311/what-is-the-difference-between-reententfunction-and-recursive-function-in-c – 0decimal0