2014년 7월 8일 화요일

[C언어] 전처리 명령 #include, #define, #undef, #if, #ifdef, #ifndef, #else, #endif

main.c 소스코드를 열어보면 가장 맨 앞에 위치하는 #으로 시작하는 코드들은 모두 전처리 명령이다.

대표적인 전처리 명령은 아래와 같다.

#include : 특정파일의 코드 포함

#define : 매크로 정의

#undef : 정의된 매크로 해제

#if, #ifdef, #ifndef, #else, #endif : 전처리 조건문

★ 전처리 조건문

- 예시#1
: 하나의 정의 내용에 대하여 연관된 다른 정의를 능동적으로 수행하고자 할때 아래와 같이 정의할 수 있다. 예를 들어 16by2 또는 16by4 LCD Display에 DDRAM Address를 정의하고자 한다. 2줄과 4줄 LCD는 각 줄에 시작 주소가 다르므로 아래와 같이 코드를 작성한다면 lcd_row 에 정의된 값에 따라 능동적으로 시킬 수 있다.

#define lcd_row=4
#define LCD_START_LINE1 0x00
#if LCD_DRIVER==KS0074
 #elif lcd_row==4 // << lcd_row가 4이므로 1~4줄에 시작 주소를 정의함.
  #define LCD_START_LINE2 0x20
  #define LCD_START_LINE3 0x40
  #define LCD_START_LINE4 0x60
 #elif lcd_row==2 // << lcd_row가 2일 때 1~2 줄에 시작 주소를 정의함.
  #define LCD_START_LINE2 0x40
#endif

- 예시 #2
: 주로 header file을 포함시키고 다른 코드에서 중복으로 사용되는 경우가 있다. 이때 이미 정의된것이 있다면 중복 정의 되지 않도록 코드를 작성할 수 있다. 예를 들어 LCD_H라는 정의가 되어 있지 않다면 #ifndef LCD_H 부터 #endif 사이에 작성된 정의를 수행하도록 하는 코드이다.

#ifndef LCD_H
#define LCD_H
/*
정의 내용 작성
*/
#endif

댓글 없음:

댓글 쓰기

[C++] 연습문제 1-2

 /****************************************************************************** - 피트(feet)를 인치(inch)로 변환시켜주는 프로그램을 작성 - 사용자로부터 피트를 입력받아 인치로...