注册 登录
查看: 304|回复: 5

[K60] 求教山外哥,IAR创建新文件问题。急。。。。。。

[复制链接]
发表于 2014-5-12 13:15:12 | 显示全部楼层 |阅读模式
使用山外的库函数,本人原本写的程序都是在main.c或者isr.c文件里,最近写的代码越来越多,感觉这样看着太复杂,想要模块化一下,于是就开始创建新文件。
我将main.c的一些变量声明都拉了出去,放到新建的文件里,按照正常的步骤,一步一步的完成移植,经过编译后出现了图一的情况,100个问题呢,乖乖,全都是说在不同文件里重复定义,以前也遇到过一次这种问题,那次是在重复定义的地方加了extern,编译是没问题,但是运行有问题(效果不是理想的)。、
这一次又遇到这个问题,于是我想从根本上解决它,应该不是单单加extern就解决的问题,因为所有的文件都由.h文件以及include.h关联起来的,只要有一个地方定义了,那其他所有地方不需要定义就可以使用吧。
想请教一下山外哥,对于你们的库改怎么进行操作。。。。。。。。。。。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复

使用道具 举报

发表于 2014-5-12 13:16:41 | 显示全部楼层
明显是模块化编程不熟悉嘛。
头文件只需要放声明,不要放定义啊!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-5-12 13:23:35 | 显示全部楼层
韦嘉淑 发表于 2014-5-12 13:16
明显是模块化编程不熟悉嘛。
头文件只需要放声明,不要放定义啊!

就是说.h里只放函数声明,把变量声明放在相应.C里,是吧
回复 支持 反对

使用道具 举报

发表于 2014-5-12 13:27:31 | 显示全部楼层
925901184 发表于 2014-5-12 13:23
就是说.h里只放函数声明,把变量声明放在相应.C里,是吧

是啊,如果把定义放在头文件,就会出现重复定义的问题。

山外哥的K60视频也讲过模块化编程的
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-5-12 13:29:15 | 显示全部楼层
阙云亭 发表于 2014-5-12 13:27
是啊,如果把定义放在头文件,就会出现重复定义的问题。

山外哥的K60视频也讲过模块化编程的

不好意识,视频没看过,再问一下,现在要想在其他文件里使用变量,用extern就可以了吧
回复 支持 反对

使用道具 举报

发表于 2014-5-12 13:31:41 | 显示全部楼层
925901184 发表于 2014-5-12 13:29
不好意识,视频没看过,再问一下,现在要想在其他文件里使用变量,用extern就可以了吧

头文件里声明的时候加上 extern。
其他文件用到,只需要包含头文件就好了
回复 支持 反对

使用道具 举报

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

本版积分规则

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