ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [C언어] 2-3. 선행처리기
    프로그래밍/C 2014. 4. 2. 14:57
    반응형

    1. 선행처리기란?

    - 컴파일러에 앞서 미리 수행되는 처리기 부분으로 전처리기라고도 부른다.

    - 사용자가 정의한 각종의 내용을 먼저 처리하는 부분으로 반드시 #으로 시작하고 한줄에 하나의 명령문장만 사용가능하며 문장의 끝에는 ;를 붙이지 않는 특징을 가지고 있다.


    * 선행처리기의 종류

    - #include 파일포함

    - #define 매크로 정의

    - #if ~ #endif 조건부 컴파일


    * 선행처리기 사용 시 주의할 점

    1. 반드시 #으로 시작

    2. 소스프로그램의 첫 부분에 위치

    3. 명령문 끝에는 세미콜론을 붙이지 않는다.

    4. 한줄에 하나의 명령만 사용




    2. #include 파일 포함

    - #include문은 각종 헤더파일이나 사용자가 만든 다른 소스파일을 소스 직부분에서 포함시키고자 할 떄 사용되는 선행처리문으로 #include문이 있는 자리에 지정된 파일이 포함된다.

    - 다음과 같은 형식으로 사용된다.

    #include <라이브러리 헤더>

    #include "사용자 정의 헤더"

    - <>에 들어있는 경우 헤더 파일을 C컴파일러에서 검색

    - ""에 들어있을 경우 소스 파일이 있는 디텍터리에서 검색


    3. #define 매크로 정의

    - #define문은 매크로 상수, 함수등을 정의해서 프로그램에서 반복 사용하도록 지원하는 선행처리문

    - 프로그램이 종료될 때까지 유효하므로 중간에 변경이 불가능하다.


    * 매크로 상수 정의

    - 다음과 같은 형식으로 매크로 상수를 지정

    #define 매크로 상수 이름값


    * 매크로 함수 정의

    - 매크로 함수가 사용된 곳을 만나면 지정된 문자열 상수들을 매크로 함수의 인자에 매핑해서 문자열 대치 작업을 수행한다.

    - 매크로 함수는 실제 함수가 아니므로 컴파일 시에 인자의 데이터형을 수행하지 않고 인자를 매개변수로 전달하는 함수호출과정도 수행하지 않는다.

    - 매크로 함수를 사용하였을 때의 장점은 실행속도가 빨라진다, 단점은 프로그램의 크기가 커지고 코드를 분석하기 힘들어진다.




    4. 조건부 컴파일

    - 조건이 만족될 때 특정 문장을 컴파일하는 문장

    - #if, #ifdef등이 있다. 각각 #endif가 필요.


    * 정리후기

    - 문제가 많다. 43문제나 풀었다.

    반응형

    댓글

Designed by Tistory.