드문 경우지만 __LINE__
에 의해 주어진 행을 다른 것으로 변경하는 것이 유용 할 수 있습니다. 필자는 GNU configure가 원래 소스 파일에 나타나지 않는 행 사이에 부두를 삽입 한 후 적절한 행 번호를보고하는 일부 테스트를 수행한다는 것을 알았습니다. 예를 들어 :
#line 100
는 다음과 같은 라인이 __LINE__
(100)와 함께 당신은 선택적으로 그것은 단지 거의 유용하지 않는 새 파일 이름
#line 100 "file.c"
을 추가 할 수 있습니다 시작 할 것입니다. 그러나 그것이 필요한 경우, 제가 아는 대안이 없습니다. 사실, 선 대신 매크로를 사용하여 위의 두 가지 형식 중 하나를 가져와야합니다. 부스트 전처리 라이브러리를 사용하면 (50)에 의해 현재 행을 증가 할 수 있습니다
#line BOOST_PP_ADD(__LINE__, 50)
난 당신이 __LINE__
및 __FILE__
의 사용에 대해 질문 이후는, 그것을 언급하는 것이 유용 생각했다. 하나는 결코 밖으로 충분히 놀라움을 얻을 수 없습니다 C++ :
편집 : @ 조나단 레플러는 의견에 좀 더 좋은 사용 사례를 제공
는 # 라인 덤비는 사전 프로세서에 매우 유용하다 사용자의 소스 파일에 따라 사용자의 C 코드에보고 된 오류를 유지하려고합니다. Yacc, Lex, (저에게 가정에서 더 많이) ESQL/C 전 처리기가 그렇게합니다.
__LINE__은 올바른 일을해야합니다. 나는 그것을 __PRETTY_FUNCTION__을 포함하여 광범위하게 사용했다. ...하지만 ... 글쎄, 지금은 __LINE__이있는 코드를보고 있습니다. 아마도 try/catch 예외 처리를위한 catch 블록에 있기 때문일 수 있습니다. –
관련 : [gcc reference for predefined macros] (http://gcc.gnu.org/onlinedocs/cpp/Standard-Predefined-Macros.html) –