반응형
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
반응형
'programing' 카테고리의 다른 글
| WordPress 및 BuddyPress 스팸 차단 (0) | 2023.09.21 |
|---|---|
| MySQL에서 128비트 숫자를 한 열에 저장하는 방법? (0) | 2023.09.21 |
| j클릭시 이벤트를 동적으로 추가된 HTML 요소에 바인딩하는 방법 쿼리 (0) | 2023.09.21 |
| 깃 푸시가 "빠른 방향으로 이동하지 않음"을 거부했습니다. (0) | 2023.09.21 |
| 초기 데이터 로드(angularjs) (0) | 2023.09.21 |