2012-07-26 6 views
1

많은 프로젝트에서 사용되는 수백 개의 C++ 소스 파일이 있습니다. 그들은 다시 꽤 작성되었고, 그들은 모두 포장 프라 그마에 싸여있다 :Visual Studio 2010에서 특정 pragma를 무시할 수 있습니까?

#pragma pack(push, 1) 
/* Code here ... */ 
#pragma pack(pop) 

나는 64에 포팅 맡게되었다. 변경해야 할 사항 중에는 Windows API 호출을위한 16 바이트 정렬 스택에 대한 요구 사항이 있습니다. 우리 시스템을 분석 한 결과, 1 바이트 구조 정렬이 이 필요하지 않으며이 아니며 시스템에 악영향을 미치지 않습니다. 1 바이트 패킹을 제거해야합니다.

나는 모든 파일에서 빠른 찾기/바꾸기를 수행 할 수 있음을 알고 있습니다. 이것은 좋은 해결책입니다. 유일한 방법이라면이 작업을 수행하게되어 기쁩니다. 그러나 을 말 그대로 수백 개의 소스 파일에 대한 변경과 관련된 수정 사항을 체크인하지 않아도되고 모든 갈등이있는 경우 바람직 할 수 있습니다.

Microsoft 컴파일러에서 #pragma 팩을 무시하는 방법이 있습니까?

+1

문자열은 파일에서 간단한 편집 + 찾기 및 바꾸기 + 바꾸기가 가능하므로 작업이 빠르고 안전하게 완료 될 수 있도록 고유합니다. –

답변

3

내가 아는 한, MSVC를 사용할 때 #pragma를 비활성화 할 수있는 방법이 없습니다.

텍스트 처리에 적합한 언어로 스크립트를 작성하면됩니다 (아마 Ruby를 사용하지만 Python, Perl, sed가 모두 해당 작업을 수행해야합니다). 간단히 주석을 달아서 사용하십시오 또는 #pragma pack 행을 제거하십시오. 이것은 #pragma가 코드 줄을 제공하는 유일한 문장이되기 때문에 비교적 쉽습니다. 스크립트 언어는 대개 일련의 디렉토리를 반복하는 기능을 포함합니다.