전처리기와 매크로 <1>
전처리기란? (아직)
* 전처리기는 보통 컴파일 과정의 일부라고 하거나, 컴파일 전 단계라고 할 수 있다.
* 전처리기가 하는 일을 알기 위해서는 일단 매크로를 알아야 한다.
매크로란?
* 매크로는 전처리기가 지원하는 일종의 복사/붙여 넣기(치환)이다.
* 전처리기는 매크로에 복붙 될 녀석이 정상인지 따위 생각하지 않는다. (못한다)
#define 식별자 대체_목록
* 코드에 있는 식별자를 대체 목록으로 바꾼다.
ex) #define PI 3.14
#define 식별자
* 위에 처럼 대체 목록이 없어서 정의는 할 수 있다.
내용은 없지만 정의는 되어 있는 상태
* 매크로를 함수 대신 사용한다면, 함수로 점프하지(함수 호출) 않으므로 성능상 이득이 있다.
* 매크로를 변수나 상수 대신 사용한다면, 가독성을 높일 수도 있다.
#undef 식별자
* 정의된 식별자를 없애는 매크로이다.
ex) #undef PI
* 식별자가 정의되지 않았다면 #undef는 무시된다.
이미 정의되어있는 식별자들
* 좀 있다. 필수적으로 정의되어야 하는 식별자부터 필수는 아니지만 권장하는 식별자도 있다.
* 밑에는 필수
_FILE_ | 현재 소스파일의 파일의 이름(문자열) |
_LINE_ | 현재 코드의 줄 번호(상수인 정수) |
_STDC_VERSION_ | 현재 컴파일러가 따르는 C표준 버젼 |
* _FILE_이나 _LINE_은 오류 출력에 자주 사용하고,
_STDC_VERSION_은 C버전에 따른 차이점이 있을 때 판단할 수 있다.
귀여운 그림은 낡은 창고님이 그리셨습니다.
반응형
'C' 카테고리의 다른 글
전처리기와 매크로 <3> (0) | 2021.02.04 |
---|---|
전처리기와 매크로 <2> (0) | 2021.02.03 |
extern 키워드 (0) | 2021.02.02 |
동적 메모리 할당에 관한 규칙, 권장 (0) | 2020.12.30 |
memcmp 함수 (0) | 2020.12.29 |