워닝 “No newline at end of file”은 왜 뜨나요?


발생하는 문제 및 실행환경

C++ 컴파일러가 자꾸 “No newline at end of file”라면서 워닝을 띄웁니다. 왜 소스/헤더파일 마지막에 엔터를 쳐줘야 되나요? 에러도 아닌게 자꾸 거슬리고 뭔가 찜찜한데 이거 어떻게 없애는지 아시는 분?

  • 2016년 01월 29일에 작성됨

조회수 202


1 답변


좋아요
0
싫어요
채택취소하기

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미만의 컴파일러에서는 찾기 힘든 문제가 될 수 있으니 파일 맨 밑줄은 꼭 띄워주세요

  • 2016년 01월 29일에 작성됨

로그인이 필요한 기능입니다.

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 작성한 답변에 다른 개발자들이 댓글을 작성하거나 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.
► 로그인
► 계정만들기
Close