매크로(macro)
상수나 자주 사용하는 표현식과 같이 다른 이름으로 대체한 이름
ex) N을 10으로 대체
#define N 10
매크로(macro) 종류
- 단순 매크로 (simple macro)
- 매개변수 매크로 (parameterized macro)
단순 매크로(simple macro)
매개 변수가 없는 매크로를 단순 매크로라 한다.
#define
#define 식별자 대체목록 \ 식별자가 대체목록을 의미하게됨 \
#define N 10
대체 목록
: 식별자, 키워드, 숫자 상수, 문자 상수, 문자열 리터럴, 연산자 등을 포함
장점
- 프로그램의 가독성을 높혀줌
- 프로그램의 수정성을 높혀줌
- 일관성 없는 코드나 오타 방지
매개변수 매크로 (parameterized macro)
#define
#define 식별자( x1 , x2 , ... , xn)대체목록
#define ADD(a, b) ((a) + (b))
ex)
#include <stdio.h>
#define ADD(a, b) ((a) + (b))
int main(void)
{
printf("%d", ADD(1, 2)); # 3
return 0;
}
장점
- 프로그램이 조금 더 빨라진다.
- 매크로는 generic이다.
단점
- 컴파일된 코드가 더 길어진다.
- 입력변수의 형을 확인해주지 않는다.
- 매크로를 가리키는 포인터를 가질 수 없다.
- 매크로가 입력변수를 한번 이상 평가할 수 있다. -> 예상하지 못한 값이 할당될 수 있다.
'프로그래밍 언어 > C' 카테고리의 다른 글
[C] 컴파일 과정 (0) | 2023.05.20 |
---|---|
[C 언어] 전처리기 (0) | 2023.05.18 |