Filename and line information
전처리기에서 소스 코드의 줄 번호와 선택적으로 현재 파일 이름을 변경합니다.
목차 |
구문
#line
lineno
|
(1) | ||||||||
#line
lineno
"
filename
"
|
(2) | ||||||||
설명
1) 현재 전처리기 줄 번호를 lineno 로 변경합니다. 이 지점 이후의 __LINE__ 매크로 확장은 lineno 에 지금까지 실제로 마주친 소스 코드 줄 수를 더한 값으로 확장됩니다.
2) 또한 현재 전처리기 파일 이름을 filename 으로 변경합니다. 이 시점부터 __FILE__ 매크로의 확장은 filename 을 생성합니다.
모든 전처리 토큰(매크로 상수 또는 표현식)은 유효한 10진수 정수와 선택적으로 유효한 문자열이 뒤따르는 형태로 확장되는 한, #line 의 인수로 허용됩니다.
lineno
는 적어도 하나 이상의 십진수 숫자로 이루어진 시퀀스여야 합니다(그렇지 않으면 프로그램이 잘못 형성됨). 항상 십진수로 해석됩니다(심지어
0
으로 시작하는 경우에도).
만약
lineno
가
0
이거나
32767
(until C++11)
2147483647
(since C++11)
보다 큰 경우, 동작은 정의되지 않습니다.
참고 사항
이 지시자는 다른 언어로 작성된 파일로부터 C++ 소스 파일을 생성하는 일부 자동 코드 생성 도구에서 사용됩니다. 이 경우, #line 지시문이 생성된 C++ 파일에 삽입되어 원본(사용자가 편집 가능한) 소스 파일의 줄 번호와 파일 이름을 참조할 수 있습니다.
예제
#include <cassert> #define FNAME "test.cc" int main() { #line 777 FNAME assert(2+2 == 5); }
가능한 출력:
test: test.cc:777: int main(): Assertion `2+2 == 5' failed.
참고문헌
- C++23 표준 (ISO/IEC 14882:2024):
-
- 15.7 라인 제어 [cpp.line]
- C++20 표준 (ISO/IEC 14882:2020):
-
- 15.7 라인 제어 [cpp.line]
- C++17 표준 (ISO/IEC 14882:2017):
-
- 19.4 라인 제어 [cpp.line]
- C++14 표준(ISO/IEC 14882:2014):
-
- 16.4 라인 제어 [cpp.line]
- C++11 표준 (ISO/IEC 14882:2011):
-
- 16.4 라인 제어 [cpp.line]
- C++98 표준 (ISO/IEC 14882:1998):
-
- 16.4 라인 제어 [cpp.line]
참고 항목
|
(C++20)
|
파일 이름, 줄 번호, 함수 이름과 같은 소스 코드 정보를 나타내는 클래스
(클래스) |
|
C documentation
for
파일 이름 및 줄 정보
|
|