野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 19901|回复: 4

如何在一个工程中根据不同情况使用不同的app程序

[复制链接]
发表于 2016-10-26 15:30:32 | 显示全部楼层 |阅读模式
1火花
具体情况是这样的:我现在有两个工程,这两个工程相似的代码太多了,因为是使用不同的协议,只是在通信上程序有差别。
而我在以后的使用中,可能会去改这部分相同代码,这样的话我必须每次都改这两个工程,有什么办法可以把这两个工程整合在一起吗?
然后我可以根据实际需求决定使用哪部分通信程序。

给点思路就好啦,先谢谢大家,先谢谢大家。

回复

使用道具 举报

发表于 2016-10-26 15:40:38 | 显示全部楼层
用条件编译不就可以了嘛?


  1. void main(void)
  2. {
  3.         /* 相同的代码 */
  4.        
  5.         /* 不同的代码 */
  6. #if 1   /* 执行app1的程序 */
  7.        
  8. #else   /* 执行app2的程序 */
  9.        
  10. #endif       
  11. }

复制代码

回复

使用道具 举报

 楼主| 发表于 2016-10-26 16:41:02 | 显示全部楼层
fire 发表于 2016-10-26 15:40
用条件编译不就可以了嘛?

对,也是一种方法,不过我现在想这样弄
1、建立一个工程,用宏定义区分硬件版本号
2、建立两个工程,共用公用文件夹,你改变了一个工程的代码,另外一个工程加载的时候,代码自然是最新的

因为我工程有点杂,而且相同不同的代码不单单是main函数里面的,你提供的方法也可以,不过对我来说会复杂了点,因为我需要把整个工程都审核一下呢~而我上面说的可能出错的概率更小点,不过也只是可能哦
回复

使用道具 举报

发表于 2016-10-26 16:47:06 | 显示全部楼层
我叫做大熙熙 发表于 2016-10-26 16:41
对,也是一种方法,不过我现在想这样弄
1、建立一个工程,用宏定义区分硬件版本号
2、建立两个工程, ...

我用main函数只是举个例子而已

STM32的固件库也挺复杂的了吧,比如M3的,要支持这么多型号的单片机,不同的地方全部都是通过调节编译来实现的,这种方法不仅在STM32的固件库,在操作系统的内核,还有其他的各种开源的程序里面都非常的常见。

条件编译是你不二之选啊。
回复

使用道具 举报

 楼主| 发表于 2016-10-27 01:08:51 | 显示全部楼层
fire 发表于 2016-10-26 16:47
我用main函数只是举个例子而已

STM32的固件库也挺复杂的了吧,比如M3的,要支持这么多型号的单片机, ...

哈哈哈,整理到现在,表示都很复杂,到现在还没整理好……明天继续!谢谢你的建议,现在也的确感觉条件编译更好,哈哈哈
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-11-26 06:02 , Processed in 0.027575 second(s), 22 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表