글
Chapter 15. 전처리기
책 정리/좋은 프로그래밍 습관
2009. 9. 4. 21:14
전처리기
전처리기는 각 소스에 추가되어 있는 헤더파일을 실제 소스를 복사하는 작업을 한다.
그런 이후에 컴파일을 한다.
헤더파일
헤더파일은 주로 함수의 프로토타입의 선언 및 새로운 데이터형, 다른 헤더의 파일을 추가 할떄 사용한다.
헤더파일에는 전역변수 는 되도록이면 사용하지 않도록 한다. 헤더파일은 다른 소스파일에서도
참조를 하기 때문에 오류가 일어나기 쉽다.
P.S : 여러 다른 헤더파일을 포함하는 하나의 헤더파일을 만들어 사용하게 되면 사용할 때는 편하겠지만
메모리가 낭비 된다.
#ifdef 문 ( #ifndef )
- #define DEBUG
- void main()
- {
- printf("전처리기\n");
- #ifdef DEBUG
- printf("DEBUG 식별자가 정의되어 있습니다.\n");
- #else
- printf("DEBUG 식별자가 정의되어 있지 않습니다.\n");
- #endif
- }
매크로 함수
컴파일러나 실행되는 운영체제의 입장에서 함수를 처리하는 것은 큰 작업이다.
그래서 이러한 단점을 해결하기 위해 간단한 함수 같은 경우는 매크로 함수를 정의하여 사용을 합니다.
-
#define EXPOENTIAL( num ) (num)*(num)
-
int doubleNum = EXPOENTIAL( 5 );
이 선언은 전처리기에 의해서
-
int doubleNum = (5)*(5);
와 같이 처리가 되어 컴파일이 실행됩니다.
매크로 함수를 두줄 이상 사용하자!
-
#define MAX(a,b)\
if( a > b )\
printf("%d",a);\
else \
printf("%d",b);
5줄의 매크로 함수가 쓰여 있는데 이를 하나의 매크로 함수로 인식시키기 위해서 각 함수의 각 줄
뒤에 '\'문자를 붙여 넣어주게 되면 전처리기는 이를 보고 연속된 줄로 인식을 한다.
이 글은 스프링노트에서 작성되었습니다.
'책 정리 > 좋은 프로그래밍 습관' 카테고리의 다른 글
Chapter 16. 디버깅 (0) | 2009.09.04 |
---|---|
Chapter 14. 공용체 (0) | 2009.09.04 |
Chapter 13. 구조체 (0) | 2009.09.04 |
Chapter 12. 함수 포인터 (0) | 2009.09.04 |
Chapter 11. 포인터 (0) | 2009.09.04 |