본문 바로가기
방통대/C프로그래밍

2-3 선행처리기

by 꿈꾸는 몽나 2024. 2. 26.
728x90

 

선행처리기

: 컴파일에 앞서 프로그램 선두에 선언된 지시자들을 미리 처리하는 역할을 수행

 

 

 

선행처리기의 종류

선행처리기 기능
#include 파일 포함
#define 매크로 정의
#if #else #elif #endif 조건부 컴파일

 

 

 

선행처리기를 사용할 때 주의할 점

: 반드시 #로 시작해야 한다.

: 명령문 끝에는 세미콜론(;)을 붙이지 않는다.

: 한 줄에 하나의 명령만 쓴다.

: 소스 프로그램의 첫 부분에 위치한다.

 

 

 

 

#include

: 파일 포함

: #include는 C언어에서 제공되는 헤더파일(*.h)를 자신의 소스파일에 읽어 들여 함께 컴파일 하고자 할 때 사용

: C프로그램에서 표준함수인 printf(), scanf() 등을 사용하려면

이 함수들의 원형(prototype)이 선언되어 있는 표준 입출력 헤더파일인 stdio.h를 #include시켜야 함.

 

형식 : #include <파일명> 

        : #include "파일명"

 

예시 : #include <stdio.h> 

        : #include "stdio.h" 

        : #include "\tc\lib\math.h"

 

기능 : #include 다음에 제시된 파일을 현재 프로그램에 포함시킨다.

        : <파일명>은 표준 디렉토리(보통 include 디렉토리)에서 파일을 찾아 포함

        : "파일명"은 현재 사용 중인 디렉토리나 지정된 디렉토리에서 파일을 찾아 포함하며, 또는 드라이브나 경로를 사용

 

 

 

#define

: 매크로를 정의할 때 사용

 

*매크로

: 선행처리기 #define을 사용하여 단순 치환되는 자료

: 프로그램 작성 시에 명령이나 수식 또는 상수값이 자주 사용될 때 이들을 대표하는 이름을 붙여 사용하는 대상

 

*매크로 정의

-매크로 상수 정의

형식 : #define 매크로명 자료

         : #undef 매크로명

 

예시 : #define Pl 3.141592  -> 이는 프로그램 내의 Pl는 3.141592로 치환하라는 것

 

기능 : 프로그램에 나요는 매크로명을 지정한 자료로 치환한 후 컴파일하거나(#define), 정의를 해제(#undef)한다.

 

 

매크로 상수 정의의 사용 예)

출력 

한국방송통신대학교 주소 : 서울시 종로구 대학로 86(동숭동)

전화번호 : 1577-999520

 

 

 

-매크로 함수 정의

형식 : #define 매크로명(인수) (수식)

        : #define 매크로명(인수, 인수) (수식)

 

예시 : #define AREA(x) (3.141592*(x)*(x))

        : #define HAP(a, b) (a+b)

 

장점 : 선행처리기에 의한 단순 치환 방식이므로, 전달 인자의 자료형을 명시할 필요가 없고, 또 어떠한 자료형 변수를 인자로 전달해도 잘 동작한다.

         : 한 두 줄의 코드인 경우 함수로 정의하는 것보다 속도가 빠르다.

 

 

매크로 함수 정의의 사용 예)

매크로 인수 정의시 괄호 사용 유무에 따라 결과값이 달라진다.

h1 = 10*3+4

h2 = 10*((3)+(4))

g1 = 1+2*3+4

g2 = ((1+2)*(3+4))

 

출력 :

h1=34, h2=70

g1=11, g2=21

 

 

 

#if #else #elif #endif

: 조건부 컴파일

: 조건에 따라 프로그램을 컴파일하는 명령

: 최적의 코드로 프로그램을 작성할 수 있기 때문에 시스템의 성능 향상

 

#if와 #elif 다음에는 컴파일 여부를 결정하는 조건문 필요

: 조건문은 선행처리과정에서 진위 여부를 판단할 수 있어야 함

: 변수 지정이나 함수 호출 부가

: 주로 매크로 값이 사용

 

 

조건부 컴파일의 사용 예)

매크로 상수 값이 1로 치환된다.

즉, CONDITION이 1이 된다. 0은 거짓을 의미하고 0 이외의 값은 참을 의미한다.

 

조건이 참이므로 실제 컴파일 되는 프로그램은 :

void main() {

 printf("\n A 프로그램을 컴파일");

}

728x90

'방통대 > C프로그래밍' 카테고리의 다른 글

4-1 연산자  (0) 2024.03.11
3-1 표준 입출력 함수  (0) 2024.03.04
2-2-2 변수 선언  (1) 2024.02.26
2-2-1 자료형  (0) 2024.02.26
2-1 상수와 변수  (0) 2024.02.26