우리는 계승 한 커다란 C 코드베이스를 가지고 있고, 새로운 프레임 워크로 모든 모듈을 업데이트하는 과정에서 #ifdef FOO와 #ifndef FOO를 많이 만들었습니다. 새로운 프레임 워크는 테스트 목적을 위해 이전 프레임 워크와 병행합니다.큰 C 코드 기반에서 일부 조건문을 리팩터링하거나 제거하는 자동화 도구가 있습니까?
이제 테스트 단계가 끝나고 첫 번째 릴리스가 완료되었으므로 FOO가 정의 된 모든 공식 코드를 공식적으로 제거하고 싶습니다.
모든 매크로를 확장하고 모든 헤더 파일을 포함시키지 않기 때문에이 경우에는 전처리 기의 출력에 대해 알고 있습니다.이 경우 유용하지 않습니다. 따라서 사용하지 말고 응답하지 마십시오.
디렉토리와 모든 하위 디렉토리를 가져 와서 FOO가 정의 된 #if # 사례 사례를 모두 제거하고 FOO가 정의되지 않은 사례를 모두 제거하도록 모든 텍스트 파일을 처리 할 수있는 도구가 필요합니다. # if/# else 문 전체를 제거합니다.
이것은 꽤 일반적인 리팩토링 작업이라고 생각합니다. 수동 작업이 많습니다 (도구에도 간단합니다!). 아무도 모른다면 알려주세요!
'FOO'의 정의 된 상태 또는 정의되지 않은 상태가 다른 파일에서 변경되면 문제가 "쉬운"것으로 들리지 않습니다. 변경 사항은 어디서 발생합니까? 일부 파일에는'#define FOO' 프리 프로세서 지시어가 있습니까? – unwind
FOO는 변경되지 않으며 메이크 파일에 의해 제어됩니다. 그리고 그것은 결코 우리의 프로젝트에서 정의되는 것으로 돌아 오지 않을 것입니다. –