00002__소스 코드 템플릿

00002__소스 코드 템플릿


소개


C 코드를 작성할 때, 때때로 몇 개의 헤더 파일이나 원본 파일은 차이가 많지 않으니, 템플릿 방식을 채택할 수 있다

2. 코드는 다음과 같다.

  • 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*/
    
    
  • 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
    
  • gen.sh는 bash 스크립트이고 Windows에서git bash에서 실행할 수 있습니다.
  • 좋은 웹페이지 즐겨찾기