컴파일러 경고(수준 1) C4067
전처리기 지시문에 따른 예기치 않은 토큰 - 줄바꿈이 필요합니다.
설명
컴파일러는 전처리기 지시문 다음에 추가 문자를 찾아 무시했습니다. 이는 예기치 않은 문자로 인해 발생할 수 있지만, 일반적인 원인은 지시문 뒤의 스트레이스트 세미콜론입니다. 주석으로 인해 이 경고가 발생하지 않습니다. /Za 컴파일러 옵션을 사용하면 기본 설정보다 더 많은 전처리기 지시문에 대해 이 경고를 사용할 수 있습니다.
예시
// C4067a.cpp
// compile with: cl /EHsc /DX /W1 /Za C4067a.cpp
#include <iostream>
#include <string> s // C4067
#if defined(X); // C4067
std::string s{"X is defined"};
#else
std::string s{"X is not defined"};
#endif; // C4067 only under /Za
int main()
{
std::cout << s << std::endl;
}
이 경고를 해결하려면 길 잃은 문자를 삭제하거나 주석 블록으로 이동합니다. /Za 컴파일러 옵션을 제거하여 특정 C4067 경고를 사용하지 않도록 설정할 수 있습니다.
// C4067b.cpp
// compile with: cl /EHsc /DX /W1 C4067b.cpp
#include <iostream>
#include <string>
#if defined(X)
std::string s{"X is defined"};
#else
std::string s{"X is not defined"};
#endif
int main()
{
std::cout << s << std::endl;
}