워닝 “No newline at end of file”은 왜 뜨나요?
조회수 2722회
발생하는 문제 및 실행환경
C++ 컴파일러가 자꾸 “No newline at end of file”라면서 워닝을 띄웁니다. 왜 소스/헤더파일 마지막에 엔터를 쳐줘야 되나요? 에러도 아닌게 자꾸 거슬리고 뭔가 찜찜한데 이거 어떻게 없애는지 아시는 분?
1 답변
-
ANSI 표준에서 마지막 줄을 개행하지 않은 파일을
#include
한 경우를 생각해보면,어떤 헤더
myheader.hpp
와/*파일 myheader.hpp*/ //어떤 함수~ //어떤 변수~ //주석처리하고 있고 마지막에 엔터안했음
이
myheader.hpp
를 include하는 어떤 c++파일mycpp.cpp
가 이렇게 있다고하면/*파일 mycpp.cpp*/ #include "myheader.hpp" int main() {}
이걸 컴파일 하면
//어떤 함수~ //어떤변수~ //주석처리 하고있고 마지막에 엔터안했음 int main() {}
처럼 include 바로 뒤의 줄이 주석처리될 수도 있습니다. 이걸 컴파일 단계에서 주의를 주지 않을 경우 프로그래머는 이유도 모른 체 내 컴퓨터가 이상해졌다고 주변 사람들에게 도움을 청하겠지요.
C++11부터는 표준이 바뀌어서 신경 쓸 필요 없는 문제지만 C++11미만의 컴파일러에서는 찾기 힘든 문제가 될 수 있으니 파일 맨 밑줄은 꼭 띄워주세요
댓글 입력