00002__소스 코드 템플릿
4923 단어 0008__프로그래밍 기술소스 코드 템플릿
00002__소스 코드 템플릿
소개
C 코드를 작성할 때, 때때로 몇 개의 헤더 파일이나 원본 파일은 차이가 많지 않으니, 템플릿 방식을 채택할 수 있다
2. 코드는 다음과 같다.
#ifndef TK_LCD_MEM_{FMT}_H
#define TK_LCD_MEM_{FMT}_H
#include "lcd/lcd_mem.h"
BEGIN_C_DECLS
lcd_t* lcd_mem_{fmt}_create(wh_t w, wh_t h, bool_t alloc);
lcd_t* lcd_mem_{fmt}_create_single_fb(wh_t w, wh_t h, uint8_t* fbuff);
lcd_t* lcd_mem_{fmt}_create_double_fb(wh_t w, wh_t h, uint8_t* online_fb, uint8_t* offline_fb);
lcd_t* lcd_mem_{fmt}_create_three_fb(wh_t w, wh_t h, uint8_t* online_fb, uint8_t* offline_fb,
uint8_t* next_fb);
END_C_DECLS
#endif /*TK_LCD_MEM_{FMT}_H*/
#!/bin/bash
DATE=`date "+%Y-%m-%d"`
function gen() {
fmt=$1
FMT=`echo $fmt | tr a-z A-Z`
echo "generating $fmt $FMT $DATE"
sed -e "s/{fmt}/$fmt/" -e "s/{FMT}/$FMT/" -e "s/{date}/$DATE/" lcd_mem_h.tmpl > lcd_mem_$fmt.h
}
#supproted formats: rgb565 bgr565 rgb888 bgr888 rgba8888 abgr8888 bgra8888 argb8888
for fmt in rgb565 bgr565 bgr888 bgra8888 rgba8888
do
gen $fmt
done