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
피드 구독하기:
댓글 (Atom)
[C++] 연습문제 1-2
/****************************************************************************** - 피트(feet)를 인치(inch)로 변환시켜주는 프로그램을 작성 - 사용자로부터 피트를 입력받아 인치로...
-
개발보드에 7-SEGMENT 회로는 아래와 같다. PORT.A를 통해 74HC595 와 74LS138 IC를 제어하여 8자리 7-SEGMENT를 구동시키는 회로이다. 일반적으로 1개 포트를 사용해 1개의 7-SEGMENT를 제어할 수 있는데 P...
-
디스플레이 장치에 Direct bonding을 적용할 경우 광학적 개선효과 분석 필자는 2012 년도에 국내 디스플레이 대기업인 S 사와 함께 13.3”, 15.6”, 21.5”, 23.6”, 24.0” 등 다양한 개발모델을 가지고 ...
-
아두이노에 사용되는 I2C 2004 20X4 Character LCD Module Display를 Mega128를 사용하여 제어할 계획입니다. 아두이노는 간단히 LCD를 제어할 수 있지만 mega128은 포트에 직접 연결하여 제어하는 방식이 일반적...
댓글 없음:
댓글 쓰기