2011-07-03 5 views
0

나는 C로 애플리케이션을 작성하고 있습니다. main()이 몇 가지 기능을 호출하도록 다양한 기능으로 모든 것을 분할하려고합니다. 이러한 기능을 재사용 할 수 있으면 다른 응용 프로그램 (예 : 추가 기능)에서 이러한 기능을 사용할 수 있으므로 좋을 것입니다. 그러나 이러한 기능은 주 애플리케이션이 사용자와 상호 작용하도록 설계 되었기 때문에 수행중인 작업을 로깅합니다. 애드온 프로그램은 필연적으로 사용자와 상호 작용할 필요가 없으므로 로깅 할 필요가 없습니다.로깅을 수행하는 재사용 가능한 함수를 작성하는 방법

따라서 내 기능 중 일부를 사용하려는 프로그램은 기능 자체뿐 아니라 로깅 기능에도 의존합니다. 프로그램이 로깅을 원하지 않는다면 이것은 더욱 심각합니다. 어떻게 해결할 수 있을까요?

+0

코드를 재사용하는 사람들이 로깅 기능을 호출 할 수 있도록 readme 파일에 기록하십시오. – mingos

답변

0

이처럼 할 수있는 :

#ifdef LOGGING 
//logging code 
#endif 
+0

왜 댓글이라고 생각하십니까? –

0

당신은 당신이 로깅 여부를 어떻게 할 것인지 말 각 기능의 매개 변수를 가질 수 - 도움을 당신이 다른 프로그램에 대한 로깅을 수행 할 수 있습니다 생각하는 경우 특정 기능은 있지만 다른 기능은 아닙니다. 또는 전체 런타임에 대해 로깅을 켜고 끄는 초기화 기능을 가지고 있습니다. 또는 @yi_H가 말하듯이 로깅을 사용하지 않도록 컴파일 pragma를 사용하십시오.

이 함수가 정말로 일반적인 경우 정적 또는 동적 링크 라이브러리에도 포함됩니다. 그런 다음 로깅 모드를 설정하는 '초기화'기능을 사용하면 구조적 관점에서보다 논리적으로 이해할 수 있습니다.

관련 문제