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

조회수 2644회

발생하는 문제 및 실행환경

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

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

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)