00002__源代码模板

00002__源代码模板

一、简介

在编写C代码的时候,有时候几个头文件或者源文件都差不多的,可以采用模板的方式

二、代码如下:

  1. lcd_mem_h.tmpl代码如下:
#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*/

  1. gen.sh脚本如下:
#!/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
  1. gen.sh是bash脚本,Windows下可在git bash下运行.

你可能感兴趣的:(0008__编程技巧,源代码模板)