#define으로 시작하는 전처리기 지시자(Preprocessor Directive)
:단순 치환 작업을 요청할 때 사용되는 지시자
(매크로 선언은 문장의 끝을 의미하는 세미콜론(;)을 붙여주지 않는다)
이때 PI는 마치 상수처럼 사용되고 있다. 따라서 이러한 PI를 매크로 상수라고 한다.
이런 매크로 상수를 이용하면 배열 선언도 가능하다.
매크로를 이용한 함수의 구현
:함수의 기능을 하는 매크로 => 매크로 함수
int a = SQUARE(2);
<매크로 함수의 이점>
1. 매크로 함수는 자료형에 독립적이다.
2. 실행 속도가 향상된다.
3. 함수의 크기가 작아야 함.
<매크로 함수의 단점>
함수의 구현이 까다롭고,
디버깅하기 어려우며,
구현하고자 하는 함수의 크기가 크다면 -> 프로그램의 크기가 커지게 됨.
##을 이용하면 토큰을 결합할 수있다.
#define CONCAT(a, b) a ## b
:단순 치환 작업을 요청할 때 사용되는 지시자
(매크로 선언은 문장의 끝을 의미하는 세미콜론(;)을 붙여주지 않는다)
#include <stdio.h> #define PI 3.1415 |
이런 매크로 상수를 이용하면 배열 선언도 가능하다.
#include <stdio.h> #define NUM 10 int main(void) { int arr[num]={1,2,3,}; ...... } |
매크로를 이용한 함수의 구현
:함수의 기능을 하는 매크로 => 매크로 함수
#define SQUARE(x) x*x |
<매크로 함수의 이점>
1. 매크로 함수는 자료형에 독립적이다.
2. 실행 속도가 향상된다.
3. 함수의 크기가 작아야 함.
<매크로 함수의 단점>
함수의 구현이 까다롭고,
디버깅하기 어려우며,
구현하고자 하는 함수의 크기가 크다면 -> 프로그램의 크기가 커지게 됨.
##을 이용하면 토큰을 결합할 수있다.
#define CONCAT(a, b) a ## b
'Language > C언어' 카테고리의 다른 글
10진수 2진수, 8진수, 16진수로 표현 - - C Programming (0) | 2011.10.06 |
---|---|
const키워드 기능 (0) | 2011.03.07 |
열거형(enum) 자료형 (0) | 2011.03.01 |
문자열 처리함수 (0) | 2011.03.01 |
문자단위 입.출력 함수(putchar, getchar, fputs, fgets)...etc (0) | 2011.02.28 |