你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

自己写的一个代码生成工具,包含源代码共享给大家

[复制链接]
goswa 发布时间:2014-11-5 17:58
    写代码的时候,需要自己手工地去敲很多重复的代码。用这个工具,可以自动帮你生成头文件和C文件,并带有必要的宏定义。

funcfile.rar

下载

8.41 KB, 下载次数: 200

收藏 1 评论11 发布时间:2014-11-5 17:58

举报

11个回答
xulay 回答时间:2014-11-5 18:40:06
/*== file: 1.c ==*/
/*代码工厂创建,未经作者许可,不可复制、更改*/
/*代码作者:代码工厂*/
/*创建时间:2014年11月5日18时37分33秒*/
#include "1.h"

/*== file: 1.h ==*/
/*代码工厂创建,未经作者许可,不可复制、更改*/
/*代码作者:代码工厂*/
/*创建时间:2014年11月5日18时37分33秒*/

#ifndef 1_H_
#define 1_H_

#include "project.h"
#ifdef __cplusplus
extern "C"{
#endif

#ifdef __cplusplus
}
#endif
#endif

这有啥用?
goswa 回答时间:2014-11-5 21:51:02
本帖最后由 goswa 于 2014-11-5 21:54 编辑

我们在写程序的时候,为了提高程序可读性,都会将不同功能模块归类到不同的 *.c(函数体)  *.h(头文件),比如说要写一个串口功能模块的文件,生成过程如附件所示,针对生成内容再附加下列解释:

/*== file: uart1.h ==*/
/*代码工厂创建,未经作者许可,不可复制、更改*/
/*代码作者:代码工厂*/
/*创建时间:2014年11月5日21时31分35秒*/

#ifndef UART1_H_
#define UART1_H_

#include "project.h"    //默认的工程配置文件头
#ifdef __cplusplus   //增加此宏定义后可被C++调用,否则部分C++编译器不能正常调用C函数
extern "C"{
#endif

void Uart1_Init( void );   //默认的功能模块初始化函数
//用户可以在此增加其它的全局函数


#ifdef UART1_DEF
//在此定义全局变量 比如 int Uart_Flag;
#else
//在定义extern全局变量,增加extern定义 比如 extern int Uart_Flag;
#endif

#ifdef __cplusplus
}
#endif
#endif




/*== file: uart1.c ==*/
/*代码工厂创建,未经作者许可,不可复制、更改*/
/*代码作者:代码工厂*/
/*创建时间:2014年11月5日21时31分35秒*/
#define UART1_DEF
#include "uart1.h"

//===============================================
//--函数名称:Uart1_Init
//--函数说明:Uart1初始化函数
//===============================================
void Uart1_Init( void )
{
        ;
}

//上述全是代码工具自动生成的代码




当然,这只是个人觉得一个不错的代码编写习惯了。如要新增一个功能模块,要手写两个重复率比较高的文件还是比较费精力的,这种活可以交给计算机来干最好了。
生成过程.JPG
suyong_yq 回答时间:2014-11-7 00:02:48
用C语言写,跨平台会有点问题,不如直接用Python等脚本搞定。还有,如果能自动生成工程文件就更好了。
沐紫 回答时间:2014-11-7 08:53:42
谢谢楼主分享
goswa 回答时间:2014-11-7 09:30:38
suyong_yq 发表于 2014-11-7 00:02
用C语言写,跨平台会有点问题,不如直接用Python等脚本搞定。还有,如果能自动生成工程文件就更好了。 ...

源代码已经提供,全部是基于C标准库,要移植到其它平台只需要重新编译一下就行了。
suyong_yq 回答时间:2014-11-10 13:27:40
goswa 发表于 2014-11-7 09:30
源代码已经提供,全部是基于C标准库,要移植到其它平台只需要重新编译一下就行了。 ...

除非是商业级的软件发布,对于用户来讲,编译都是一件麻烦的事情。用户除了关注功能外,不会愿意把时间花在不相干的细节上,如果编译出了问题,还要纠结debug的事情。所以,现在开源的上位机软件大部分都是用脚本搞定的。当然,这也只是个人的看法,能做点小东西,楼主还是很厉害的,赞。
逆风的沙 回答时间:2015-8-18 09:39:14
很厉害楼主
yigerenday 回答时间:2015-8-18 10:13:36
支持下,,,,,,,,,
yigerenday 回答时间:2015-8-18 10:13:55
谢谢楼主的分享
12下一页

所属标签

STM32团队

意法半导体微控制器和微处理器拥有广泛的产品线,包含低成本的8位单片机和基于ARM® Cortex®-M0、M0+、M3、M4、M33、M7及A7内核并具备丰富外设选择的32位微控制器及微处理器


最新内容

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版