Preprocessor
From cppreference.net
<
c
전처리기는 번역 단계 4 에서 컴파일 전에 실행됩니다. 전처리의 결과는 단일 파일이며, 이 파일은 실제 컴파일러로 전달됩니다.
목차 |
지시문
전처리 지시문은 전처리기의 동작을 제어합니다. 각 지시문은 한 줄을 차지하며 다음과 같은 형식을 가집니다:
-
#문자 -
전처리 지시문 (
define,undef,include,if,ifdef,ifndef,else,elif,elifdef,elifndef(C23부터) ,endif,line,embed(C23부터) ,error,warning(C23부터) ,pragma중 하나) [1] - 인수 (지시문에 따라 다름)
- 줄 바꿈
널 지시문(
#
뒤에 줄 바꿈)은 허용되며 아무런 효과가 없습니다.
기능
전처리기는 다음과 같은 소스 파일 변환 기능을 갖습니다:
-
조건부
소스 파일 일부 컴파일 (지시문
#if,#ifdef,#ifndef,#else,#elif,#elifdef,#elifndef(C23부터) 및#endif으로 제어됨) -
텍스트 매크로
치환 및 식별자 연결/인용 (지시문
#define과#undef, 그리고 연산자#와##으로 제어됨) -
다른 파일
포함 (지시문
#include및__has_include로 확인 (C23부터) 으로 제어됨) -
오류
또는
경고
(C23부터)
발생 (지시문
#error또는 각각#warning(C23부터) 으로 제어됨)
전처리기의 다음과 같은 측면들을 제어할 수 있습니다:
-
구현 정의
동작 (지시문
#pragma및 연산자_Pragma(C99부터) 에 의해 제어됨) -
파일 이름 및 줄 정보
(지시문
#line에 의해 제어됨)
각주
- ↑ 이들은 표준에 의해 정의된 지시문들입니다. 표준은 다른 지시문들에 대한 동작을 정의하지 않습니다: 무시될 수도 있고, 유용한 의미를 가질 수도 있으며, 프로그램을 비정형으로 만들 수도 있습니다. 다른 경우에 무시되더라도 전처리가 완료되면 소스 코드에서 제거됩니다. 일반적인 비표준 확장은 #warning 지시문으로, 컴파일 중 사용자 정의 메시지를 출력합니다. (C23까지)
예제
|
이 섹션은 불완전합니다
이유: 예제 없음 |
참조문헌
- C23 표준 (ISO/IEC 9899:2024):
-
- 6.10 전처리 지시문 (p: TBD)
- C17 표준 (ISO/IEC 9899:2018):
-
- 6.10 전처리 지시문 (p: 117-129)
- C11 표준 (ISO/IEC 9899:2011):
-
- 6.10 전처리 지시문 (p: 160-178)
- C99 표준 (ISO/IEC 9899:1999):
-
- 6.10 전처리 지시문 (p: 145-162)
- C89/C90 표준 (ISO/IEC 9899:1990):
-
- 3.8 전처리 지시문
참고 항목
|
C 문서
for
Predefined Macro Symbols
|
|
|
C 문서
for
Macro Symbol Index
|
|
|
C++ 문서
for
Preprocessor
|