선행처리자라는 것은 컴파일 되기전에 실행하는 문법
- 전처리기로 매크로 함수 및 상수 선언
- 단 매개 변수 부분에는 변수 앞에 변수 타입이 들어 가지 않는다.
- 매크로명으로 코딩한 부분이 값으로 쓴 것이 컴파일시에 치환이 된다
#define 매크로명 실제값
ex> #define PI 3.14
ex> #define MESSAGE "메세지 "
매크로 함수 정의법
ex> #define sum(a,b) (a+b)
ex> #define 함수명(매개변수) (함수 내용)
ex> #define 함수명(매개변수) { \
코드;\
코드; }
ex> #define 함수명(매개변수) {코드;코드 }
예제>
#define PI 3.14
#define swap(a,b) { \
int temp = a; \
a = b; \
b = temp; \
};
#define max(a,b) (a > b ? a : b)
#define min(a,b) (a > b ? b : a)
#define abs(a) (a >= 0 ? a : -a)
예제>
#include <stdio.h>
#define PI 3.14
#define MESSAGE "메세지를 출력합니다"
#define PRINT printf("메세지 출력\n")
#define plus(a,b) (a+b)
/*
#define max(a,b) {\
if(a>b)\
printf("a가 크다\n");\
else\
printf("b가 크다\n");\
}
*/
#define max(a,b) (a > b ? a : b)
#define min(a,b) (a < b ? a : b)
#define abs(a) (a > 0 ? a : -(a))
#define swap(a,b) {\
int temp;\
temp = a;\
a=b;\
b=temp;\
}
void main(){
printf("%lf\n",PI);
printf("%s\n",MESSAGE);
PRINT;
int a=10,b=20;
printf("%d\n",plus(a,b));
printf("%d\n",max(a,b));
printf("%d\n",min(a,b));
printf("%d\n",abs(-10));
swap(a,b);
printf("%d %d\n",a,b);
}
'Code Archive > C언어' 카테고리의 다른 글
| Step16. 성적표 텍스트파일로 출력하는 프로그램 (0) | 2014.09.12 |
|---|---|
| Step15. 파일 입출력 (0) | 2014.09.12 |
| Step13. 열거형(enum) (0) | 2014.09.12 |
| Step12. 동적 메모리 할당(malloc/realloc) (0) | 2014.09.12 |
| Step11. 구조체(struct) (0) | 2014.09.12 |