写代码的时候,需要自己手工地去敲很多重复的代码。用这个工具,可以自动帮你生成头文件和C文件,并带有必要的宏定义。 - }1 J9 E# P7 c" ?6 o0 Z- n
/*代码工厂创建,未经作者许可,不可复制、更改*/; }* L/ m7 O6 B% J: ?
/*代码作者:代码工厂*/4 O' M6 ?! P2 Z8 j0 i# v `
/*创建时间:2014年11月5日18时37分33秒*/
#include "1.h"/ \3 Z* b, S& O. R! b. p
/*== file: 1.h ==*/. y5 y2 t ]/ S9 _, d- Y
/*代码工厂创建,未经作者许可,不可复制、更改*/
/*代码作者:代码工厂*/
/*创建时间:2014年11月5日18时37分33秒*/
#ifndef 1_H_/ w4 d( V, i# i+ _
#define 1_H_
' i+ k5 ^) `/ M, |: f; k4 t( s
#include "project.h"
#ifdef __cplusplus r# \; e; e( W# q) Z
extern "C"{
#endif
#ifdef __cplusplus
}
#endif
#endif) ?- h% j3 G, V- r# Y7 Q' f. x
这有啥用?
$ V. h* \1 @: I
我们在写程序的时候,为了提高程序可读性,都会将不同功能模块归类到不同的 *.c(函数体) *.h(头文件),比如说要写一个串口功能模块的文件,生成过程如附件所示,针对生成内容再附加下列解释:9 b$ p) D0 _: P9 K* m
/*== file: uart1.h ==*/
/*代码工厂创建,未经作者许可,不可复制、更改*/
/*代码作者:代码工厂*/* u9 j: p: [3 M" U5 D5 I% @8 E V9 K
/*创建时间:2014年11月5日21时31分35秒*/- t- f/ p! u& X7 U2 i
1 {: `7 ^! H; v+ D& d/ W
#ifndef UART1_H_8 [% ~6 K+ Y% T2 ]+ j. \% c4 R8 D c
#define UART1_H_ M6 r u6 O; m+ w$ L
' {4 o8 f+ |0 h/ f. J( n4 h
#include "project.h" //默认的工程配置文件头5 D. [ J0 ^5 u8 S$ b& K0 G
#ifdef __cplusplus //增加此宏定义后可被C++调用,否则部分C++编译器不能正常调用C函数
extern "C"{7 E9 |% ?+ @2 N5 C
#endif
+ j, O; d. O* z- l" L7 r) h
void Uart1_Init( void ); //默认的功能模块初始化函数
//用户可以在此增加其它的全局函数
, W0 X! x, @5 V6 G7 y6 r
5 V4 z& ^) |3 N* N+ ]0 ]6 l
#ifdef UART1_DEF1 ^0 w: S& N/ J; o
//在此定义全局变量 比如 int Uart_Flag;
#else" S( y- w! o% Q' [. R/ R: U
//在定义extern全局变量,增加extern定义 比如 extern int Uart_Flag;: z: `, k" M! g6 I- @+ a- ~
#endif7 l4 {& X6 v) B, t( a0 |3 @% _
0 m6 {& \6 w; X$ Y
#ifdef __cplusplus; U- q0 h! @) c( ]3 n
}
#endif
#endif) F8 L1 m6 o$ b/ T
* G; B; P# {# v% n$ O- U7 S: R
9 ~) _* O3 P3 i1 F4 G4 i4 j
/*== file: uart1.c ==*/
/*代码工厂创建,未经作者许可,不可复制、更改*/
/*代码作者:代码工厂*/
/*创建时间:2014年11月5日21时31分35秒*/
#define UART1_DEF. {( Z3 s9 q* {, y' R
#include "uart1.h"1 V2 g. k+ w5 I7 R' N; l
/ x& c1 e, u' u1 R. x8 B
//===============================================+ ~3 b% j) S2 a3 C' k9 _+ z
//--函数名称:Uart1_Init$ {: [$ j/ @) Q0 Q1 R8 N* s. o: P; D
//--函数说明:Uart1初始化函数8 ^/ l- W8 b% y4 w: u! S" T
//===============================================
void Uart1_Init( void )( A; ~& l$ O y! F) n
{/ E% y& I# F6 H5 c: _0 `$ E
;! Y. y a1 H7 a- X2 o0 ]1 g, x
}
3 q" J2 e9 s' A# j- F. ^& G% V5 ^
//上述全是代码工具自动生成的代码0 W( v' }4 _4 m9 m, x w6 Q
! ?9 q1 W; l" y) A* S0 q" X
3 P8 i* ], g- T$ ^3 O0 z
* W' o! _9 o5 s$ d; k$ e
当然,这只是个人觉得一个不错的代码编写习惯了。如要新增一个功能模块,要手写两个重复率比较高的文件还是比较费精力的,这种活可以交给计算机来干最好了。' h6 h8 ]7 ]; ^# I" ~& D' J
源代码已经提供,全部是基于C标准库,要移植到其它平台只需要重新编译一下就行了。
除非是商业级的软件发布,对于用户来讲,编译都是一件麻烦的事情。用户除了关注功能外,不会愿意把时间花在不相干的细节上,如果编译出了问题,还要纠结debug的事情。所以,现在开源的上位机软件大部分都是用脚本搞定的。当然,这也只是个人的看法,能做点小东西,楼主还是很厉害的,赞。