관리 메뉴

Gyejoong's Information

[C언어]전처리 및 비트필드 본문

Study/C

[C언어]전처리 및 비트필드

연계중 2016. 6. 25. 23:02
반응형

1. 전처리기


전처리기(preprocessor)는 본격적으로 컴파일하기에 앞서서 소스 파일을 처리하는 컴파일러의 한 부분이다. 전처리기는 보통 컴파일러에 포함되어 있고 자동으로 실행되며 컴파일러의 하나의 요소로 취급된다.


  전처리기는 소스파일을 처리하여 수정된 소스 파일을 생산한다. 이 수정된 소스 파일은 다음 단계의 컴파일러 프로그램에 의하여 본격적으로 컴파일된다. 보통 이 수정된 소스 파일은 컴파일 과정이 끝난 다음에 삭제되기 때문에 사용자에게는 보이지 않는다.

  전처리기는 몇 가지의 전처리기 지시자들을 처리한다. 이들 지시자들은 # 기호로 시작한다. # 기호는 문장의 첫번째 문자이어야 한다. 우리가 헤더 파일을 포함하기 위하여 사용하였던 #include가 바로 전처리기 지시어이다.


자세히 들어가기에 앞서서 전처리기에서 사용되는 지시자들을 표로 정리하였다.


 지시어

의미 

 #define

매크로 정의 

#include 

파일 포함 

#undef 

매크로 정의 해제 

#if 

조건이 참일 경우 

#else 

조건이 거짓일 경우 

#endif 

조건 처리 문장 종료 

#ifdef 

매크로가 정의되어 있는 경우 

#ifndef 

매크로가 정의되어 있지 않은 경우 

#line 

행번호 출력 

#pragma 

시스템에 따라 의미가 다름 



2. 단순매크로


#define 지시자를 이용하여 숫자 상수에 의미 있는 이름을 부여할 수 있다. #define 문을 이용하여 숫자 상수를 기호 상수로 만든 것을 단순 매크로(macro)라고 한다.


 형식

 #define     기호상수     텍스트

 예

 #define     PI               3.141592

 설명

기호상수를 찾아서 텍스트로 바꾼다. 


많이 사용되는 매크로의 예를 살펴보자.


#define 

 PI

 3.141592                                     // 원주율

#define

 TWOPI 

 (3.141592 * 2.0)                            // 원주율의 2배      

#define 

 MAX_INT

 2147483647                                 // 최대정수

#define 

 EOF

 (-1)                                            // 파일의 끝표시

#define 

 MAX_STUDENTS

 2000                                          // 최대 학생수

#define 

 EPS

 1.0e-9                                        // 실수의 계산 한계

#define 

 DIGITS

 "0123456789"                              // 문자 상수 정의

#define 

 BRACKET

 "(){}[]"                                         // 문자 상수 정의

#define 

 getchar()

 getc(stdin)                                   // stdio.h에 정의

#define 

 putchar()

 putc(stdout)                                 // stdio.h에 정의



3. 함수매크로




4. #ifdef, #endif




5. #if, #else, #endif




6. 비트 필드 구조체




반응형

'Study > C' 카테고리의 다른 글

[C언어]return과 break의 차이점 비교하기.  (0) 2016.11.04
[C언어]포인터와 이중포인터  (0) 2016.06.25
Comments