반응형
gcc 프리프로세서 출력에서 해시 기호와 #1 "a.c"와 같은 숫자로 시작하는 행의 의미는 무엇입니까?
C 프리프로세서의 출력을 출력합니다.
gcc -E a.c
출력에는 다음과 같은 행이 다수 포함되어 있습니다.
# 1 "a.c"
# 1 "<built-in>"
# 1 "<command-line>"
# 1 "a.c"
# 1 "c:\\mingw\\bin\\../lib/gcc/mingw32/4.5.0/../../../../include/stdio.h" 1 3
# 19 "c:\\mingw\\bin\\../lib/gcc/mingw32/4.5.0/../../../../include/stdio.h" 3
# 1 "c:\\mingw\\bin\\../lib/gcc/mingw32/4.5.0/../../../../include/_mingw.h" 1 3
# 31 "c:\\mingw\\bin\\../lib/gcc/mingw32/4.5.0/../../../../include/_mingw.h" 3
# 32 "c:\\mingw\\bin\\../lib/gcc/mingw32/4.5.0/../../../../include/_mingw.h" 3
# 20 "c:\\mingw\\bin\\../lib/gcc/mingw32/4.5.0/../../../../include/stdio.h" 2 3
이런 구문은 C에서 본 적이 없어요.이게 뭘 하는 건지 누가 설명 좀 해줄래?
이러한 행은 디버깅을 위한 힌트입니다(행 뒤에 오는 코드가 실제로 어디에서 왔는지 참조).
# line-number "source-file" [flags]
플래그(공백 구분):
- 1 - 새 파일 시작
- 2 - 이전 파일로 되돌아가다
- 3 - 다음 텍스트는 시스템 헤더 파일에서 가져옵니다(#include <> vs #include ").
- 4 - 다음 텍스트는 암묵적인 외부 "C" 블록으로 감싸진 것으로 취급해야 합니다.
이들 라인마커는 에 기재되어 있습니다.man gcc
위해서-P
선택.
그-P
option은 명확하게 하기 위해 다음 행을 삭제하는 것을 목적으로 합니다.
gcc -E -P source.c
이것들은 회선 동기 지시입니다.이것에 의해gcc
에러 메시지를 정정하다#include
d 파일기타 프리프로세서(예:yacc
/bison
) 같은 메커니즘을 사용하여 C 오류를 입력의 올바른 행에 관련짓습니다..y
파일.
언급URL : https://stackoverflow.com/questions/5370539/what-is-the-meaning-of-lines-starting-with-a-hash-sign-and-number-like-1-a-c
반응형
'source' 카테고리의 다른 글
VueBootstrap 및 New VeeValidate에서 사용자 지정 모드를 만들 수 없음 (0) | 2022.08.19 |
---|---|
Vue JS - 입력 필드의 특수 문자를 제한하는 방법 (0) | 2022.08.19 |
모바일 장치에서 네비게이션 바를 mini로 전환 (0) | 2022.08.19 |
C를 위한 스마트 포인터/안전한 메모리 관리 (0) | 2022.08.19 |
Java 재귀 피보나치 시퀀스 (0) | 2022.08.19 |