본문 바로가기
언어/C

[C] 매크로와 선행처리기

by merona99 2019. 1. 10.
반응형

선행처리


컴파일 이전의 처리

#문자로 시작

ex) #define PI 3.14

(지시자) (매크로) (매크로몸체)

==오브젝트와 유사한 매크로 == 매크로 상수


매크로


매크로를 정의할때는 괄호를 하나하나 하자!

두 줄 이상을 정의할 때는 \ 를 사용

매크로 함수

장점                                                        단점

일반 함수에 비해 실행속도가 빠름 

정의하기가 까다로움 

자료형에 따라서 별도로 함수를 정의하지 않아도 됨 

디버깅하기가 쉽지 않음 

따라서 작은 크기의 함수나 호출의 빈도수가 높은 함수에 매크로를 사용함


조건부 컴파일

 #if... #endif

참인 if문만 삽입

#ifdef... #endif 

매크로가 정의되어 있을경우 동작 

#ifndef... #endif 

매크로가 정의되어 있지 않은경우 동작 

#else 

나머지의 경우

#elif 

#if에만 사용 (else if와 같은 의미) 


<문자열을 사용하고 싶을 경우 #사용>

ex) define STR(ABC)    #ABC

문자열 ABC가 됨

문자열을 나란히 선언할 경우 하나의 문자열로 간주함


<단순하게 결합 ##사용>

매크로 함수의 전달인자를 다른 대상(전달인자. 숫자. 문자. 문자열등)과 이어줄 때 사용

반응형

'언어 > C' 카테고리의 다른 글

[C] 메인함수 정의  (0) 2019.01.11
[C] 파일의 분활과 헤더파일  (0) 2019.01.11
[C] 메모리 관리 & 동적 할당  (0) 2019.01.09
[C] 파일 입출력  (0) 2018.12.07
[C] 구조체  (0) 2018.12.04

댓글