다음을 통해 공유


# line 지시문 (C/C++)

#line 지시 컴파일러의 내부적으로 저장 된 줄 번호 및 파일 이름 지정 된 줄 번호 및 파일 이름으로 변경 하는 전처리기 지시문입니다.

#line digit-sequence ["filename"]

설명

줄 번호와 파일 이름 (옵션) 컴파일러를 사용 하 여 컴파일하는 동안 발견 된 오류를 참조 합니다.현재 입력된 라인을 일반적으로 줄 번호를 참조 하 고 현재 입력된 파일에서 파일 이름을 참조 합니다.각 행을 처리 한 후 줄 번호가 증가 합니다.

해당 자리 시퀀스 값 모든 정수 상수를 사용할 수 있습니다.전처리 토큰에 매크로 대체를 수행할 수 있습니다 있지만 결과 올바른 구문으로 계산 되어야 합니다.해당 파일 이름 문자 조합이 될 수 있습니다 및 이중 따옴표로 묶어야 합니다 ("").경우 파일 이름 입니다 않으면 이전 파일 이름은 변경 되지 않습니다.

작성 하 여 소스 줄 번호와 파일 이름을 변경할 수는 #line 지시문입니다.번역가 줄 번호와 파일 이름을 사용 하 여 미리 정의 된 매크로의 값을 확인 합니다 __FILE____LINE__.자체 설명 오류 메시지 프로그램에 텍스트를 삽입 하려면 다음이 매크로 사용할 수 있습니다.이러한 미리 정의 된 매크로 대 한 자세한 내용은 미리 정의 된 매크로.

해당 __FILE__ 매크로 확장 하 여 내용을 큰따옴표로 묶은 파일 이름 문자열 ("").

줄 번호와 파일 이름 변경 하는 경우 컴파일러 이전 값을 무시 하 고 계속 새 값으로 처리 합니다.#line 지시문은 일반적으로 사용 프로그램 생성기에서 생성 된 프로그램 대신 원래 소스 파일을 참조 하는 오류 메시지를 일으킬 수 있습니다.

다음 예제는 설명 #line 및 __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__ );}

참고 항목

참조

전처리기 지시문