1. typedef 는 데이터형을 만드는 명령어 입니다. C패턴을 이용하려면 반드시 알아야 합니다. 간단하게 다음과 같이 사용할 수 있습니다.
typedef unsigned char u8; u8 i = 0; //unsinged char i = 0과 동일
2. 콜백 함수도 typedef를 이용해서 만들 수 있습니다.
typedef void (*timer_handler)(s8 timer_id, u32 param1); s8 register_timer(u32 period, timer_handler handler) { ... }
3. firmware 개발시 8bit, 16bit, 32bit MCU를 개발하다 보면 애초에 형 지정을 잘못해서 모든 소스를 뒤져 수정한 경험이 있으실 지도 모르겠습니다.
특히 int, long은 MCU마다 달라질 수 있으니 조심해야 합니다. 이럴 경우 아래와 같은 예제를 사용하여 int, long의 길이가 달라질 경우 해당 부분만 수정하면 모든 소스에 동일 적용되니 편할 것입니다.
typedef unsigned char u8; typedef signed char s8; typedef unsigned short u16; typedef signed short s16; typedef unsigned long u32; typedef signed long s32;
4. define은 기본적인 구문을 미리 적어놓는 전처리기입니다. 저는 typedef, 와 define 을 기본적으로 다음과 같이 항상 사용합니다.
#ifndef DEFINE_H_ #define DEFINE_H_ #define null (void *)0 typedef unsigned char u8; typedef signed char s8; typedef unsigned short u16; typedef signed short s16; typedef unsigned long u32; typedef signed long s32; typedef enum { false = 0, true = 1 }bool; typedef enum { on = 1, off = 0 }power; typedef enum { low = 0, high = 1 }switch_t; #endif /* DEFINE_H_ */
'▶ 이전글 > C Coding' 카테고리의 다른 글
2차원배열, 함수 매개변수로 넘기는 방법과 파일명 정렬 소스 (0) | 2015.09.15 |
---|---|
불완전 선언(구조체전방선언) (0) | 2014.10.02 |
static (0) | 2014.10.02 |
enum (0) | 2014.10.02 |
assertion (0) | 2014.10.02 |