Chapter 15. 전처리기

 전처리기

전처리기는 각 소스에 추가되어 있는 헤더파일을 실제 소스를 복사하는 작업을 한다.

그런 이후에 컴파일을 한다.

헤더파일

헤더파일은 주로 함수의 프로토타입의 선언 및 새로운 데이터형, 다른 헤더의 파일을 추가 할떄 사용한다.

헤더파일에는 전역변수 는 되도록이면 사용하지 않도록 한다. 헤더파일은 다른 소스파일에서도

참조를 하기 때문에 오류가 일어나기 쉽다.

P.S : 여러 다른 헤더파일을 포함하는 하나의 헤더파일을 만들어 사용하게 되면 사용할 때는 편하겠지만

메모리가 낭비 된다.

 

#ifdef 문 ( #ifndef )
  1. #define DEBUG
  2.  
  3. void main()
    1. printf("전처리기\n");
  4. #ifdef DEBUG 
    1. printf("DEBUG 식별자가 정의되어 있습니다.\n");
  5. #else
    1. printf("DEBUG 식별자가 정의되어 있지 않습니다.\n");
  6. #endif
  7. }

 

매크로 함수

컴파일러나 실행되는 운영체제의 입장에서 함수를 처리하는 것은 큰 작업이다.

그래서 이러한 단점을 해결하기 위해 간단한 함수 같은 경우는 매크로 함수를 정의하여 사용을 합니다.

  1. #define EXPOENTIAL( num ) (num)*(num)
  2. int doubleNum = EXPOENTIAL( 5 );

이 선언은 전처리기에 의해서 

  1. int doubleNum = (5)*(5);

와 같이 처리가 되어 컴파일이 실행됩니다.

 

매크로 함수를 두줄 이상 사용하자!
  1. #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

설정

트랙백

댓글