#line 지시문
컴파일러의 내부에 저장된 줄 번호와 파일 이름을 지정된 값으로 설정하는 전처리기 지시문입니다.
#line lineNumber "filename" |
---|
매개 변수
항목 | 설명 |
---|---|
lineNumber |
설정할 줄 번호입니다. 임의의 정수 상수일 수 있습니다. 결과가 올바른 구문으로 평가되는 한 전처리 토큰에서 매크로 바꾸기를 수행할 수 있습니다. |
filename [선택 사항] |
설정할 파일 이름입니다. 파일 이름은 문자 조합일 수 있으며 큰따옴표(" ")로 묶어야 합니다. 이 매개 변수를 생략하면 이전 파일 이름이 변경되지 않습니다. |
설명
컴파일러는 줄 번호와 파일 이름을 사용하여 컴파일 중에 발견한 오류를 참조하세요. 줄 번호는 일반적으로 현재 입력 줄을 나타내고 파일 이름은 현재 입력 파일을 나타냅니다. 줄 번호는 각 줄이 처리된 후 증가합니다. 줄 번호와 파일 이름을 변경하면 컴파일러는 이전 값을 무시하고 새 값으로 계속 처리합니다. #line 지시문은 일반적으로 프로그램 생성기에서 오류 메시지가 생성된 프로그램 대신 원래 원본 파일을 참조하도록 하는 데 사용됩니다.
변환기는 줄 번호와 파일 이름을 사용하여 미리 정의된 매크로 __FILE__ 및 __LINE__의 값을 결정합니다. 이러한 매크로를 사용하여 자체 설명 오류 메시지를 프로그램 텍스트에 삽입할 수 있습니다. __FILE__ 매크로는 콘텐츠가 큰따옴표(" ")로 묶인 파일 이름인 문자열로 확장됩니다.
예제
다음 예에서는 줄 번호를 151로 설정하고 파일 이름을 "copy.c"로 설정합니다.
#line 151 "copy.c"
다음 예에서 ASSERT 매크로는 미리 정의된 매크로 __LINE__ 및 __FILE__을 사용하여 지정된 어설션이 true가 아닌 경우 원본 파일에 대한 오류 메시지를 인쇄합니다.
#define ASSERT(cond)
if( !(cond) )\
{printf( "assertion error line %d, file(%s)\n", \
__LINE__, __FILE__ );}