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

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

[复制链接]
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扩展软件包
关注我们
st-img 微信公众号
st-img 手机版