programing

gcc로 C를 컴파일할 때 전처리된 .i 파일에서 숫자의 의미는 무엇입니까?

subpage 2023. 9. 21. 20:23
반응형

gcc로 C를 컴파일할 때 전처리된 .i 파일에서 숫자의 의미는 무엇입니까?

저는 컴파일 과정을 이해하려고 노력하고 있습니다.다음을 사용하여 전처리기 중간 파일을 확인할 수 있습니다.

gcc -E hello.c -o hello.i

아니면

cpp hello.c > hello.i

저는 전처리기가 어떤 일을 하는지는 대략 알고 있지만, 일부 줄의 숫자를 이해하는 데 어려움이 있습니다.예를 들어,

 # 1 "/usr/include/stdc-predef.h" 1 3 4
 # 1 "<command-line>" 2
 # 1 "hello.c"
 # 1 "/usr/include/stdio.h" 1 3 4
 # 27 "/usr/include/stdio.h" 3 4
 # 1 "/usr/include/features.h" 1 3 4
 # 374 "/usr/include/features.h" 3 4

숫자는 디버거가 줄 번호를 표시하는 데 도움이 될 수 있습니다.그래서 첫번째 열에 대한 제 추측은 2번째 열 파일의 줄 번호입니다.하지만 다음 숫자들은 무엇을 할까요?

파일 이름 뒤에 오는 숫자는 플래그입니다.

1: 새 파일의 시작을 나타냅니다.

2: 다른 파일을 포함한 후 파일로 돌아가는 것을 의미합니다.

3: 시스템 헤더 파일에서 다음 텍스트가 나왔으므로 특정 경고를 억제해야 함을 나타냅니다.

4: 다음 텍스트를 암시적으로 래핑한 것으로 처리해야 합니다.extern "C"막다른 골목

출처 : https://gcc.gnu.org/onlinedocs/cpp/Preprocessor-Output.html

언급URL : https://stackoverflow.com/questions/33089168/what-do-the-numbers-mean-in-the-preprocessed-i-files-when-compiling-c-with-gcc

반응형