Visual Studio 컴파일러 경고 무시하기
- mizniz
- 2015. 6. 13. 21:33
- 분류 C++
이번 글에서는 Visual Studio에서 불필요한 경고를 무시하는 방법에 대해 알아보겠습니다. Visual Studio 2013을 기준으로 작성되었습니다.
아래 코드를 빌드하면 C4351 경고가 나옵니다. 이 경고는 생성자에서 배열을 초기화 할 경우 과거 컴파일러와 다르게 배열 요소들이 0으로 초기화가 잘 된다는(?) 경고입니다. 즉 별 쓸모 없는 경고이므로 이 경고를 무시하는 방법을 알아보겠습니다.
class Test { int m_ints[10]; double m_doubles[10]; public: Test() : m_ints() // C4351 , m_doubles() // C4351 { } };
프로젝트 속성에서 경고 무시하기
프로젝트 속성 창을 엽니다.
C/C++ -> Advanced -> Disable Specific Warnings로 가서 경고 번호를 적어줍니다. 여러게 적을 경우 세미콜론(;)으로 구분해줍니다. OK를 클릭하고 다시 빌드하면 더 이상 경고가 나오지 않습니다.
#pragam 키워드로 경고 무시하기
경고가 나오는 소스 파일 상단에 #pragma warning(disable: 4351) 입력해줍니다. #pragma 키워드 이 후에 나오는 경고는 모두 무시 됩니다.
#pragma warning(disable: 4351) class Test { int m_ints[10]; double m_doubles[10]; public: Test() : m_ints() // C4351 , m_doubles() // C4351 { } };
#pragam 키워드를 사용하여 소스 파일내 일부 경고만 무시하기
경고를 무시하고 싶은 영역 상단에 #pragma warning(push)를 입력하고 하단에 #pragma warning(pop)를 입력하고 그 사이에 무시하고 싶은 경고를 #pragma warning(disable: 4351)와 같이 입력하면 그 영역 내에 있는 경고만 무시됩니다. 아래 코드의 경우 Test 클래스의 경고는 무시되고 SubTest 클래스의 경고는 그대로 출력됩니다.
#pragma warning(push) #pragma warning(disable: 4351) class Test { int m_ints[10]; double m_doubles[10]; public: Test() : m_ints() // C4351 , m_doubles() // C4351 { } }; #pragma warning(pop) class SubTest : public Test { bool bools[10]; public: SubTest() : bools() // C4351 { } };