-
[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문제나 풀었다.
반응형'프로그래밍 > C' 카테고리의 다른 글
[C언어] 3-2. C언어의 연산자 (0) 2014.04.02 [C언어] 3-1. 표준 입출력 함수 (0) 2014.04.02 [C언어] 2-2. 상수 (0) 2014.04.02 [C언어] 2-1. 변수와 자료형 (0) 2014.03.28 [C언어] 1-4. Visual Studio 2013 드림스파크를 통해 사용하기 (0) 2014.03.28