打印

keilc中多个.c文件编译,结果不正确。

[复制链接]
6657|16
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
e2zone|  楼主 | 2010-10-6 10:12 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 e2zone 于 2010-10-6 10:18 编辑

在keilc中用状态机的方式写了4个独立按键的程序,编译连接0错误0警告,但是就是结果出不来。
最后觉得程序应该没问题,把这些源码都拷贝到一个.c的文件中,编译连接刷到单片机中,结果却对了,这是为什么?
谁知道的话,帮我一下,多谢了。

相关帖子

沙发
e2zone|  楼主 | 2010-10-6 10:34 | 只看该作者
为什么都只是进来而不说一句话呀。。。。。。
帮帮我呗。。。 。。。

使用特权

评论回复
板凳
McuPlayer| | 2010-10-6 10:39 | 只看该作者
你的问题描述太轮廓化了,没人能一下子帮你找到问题

使用特权

评论回复
地板
e2zone|  楼主 | 2010-10-6 10:45 | 只看该作者
就是说一个工程中,一般有多个.c和.h文件么。而我的这个问题是,我把这些代码,都写到一个.c文件中去编译连接再刷进单片机里,结果是正确的,但是分开写到多个.c文件中时,编译连接0错误0警告,但是就是结果不对了。
不知道这个怎么回事。
谢谢。

使用特权

评论回复
5
chenxiaocong| | 2010-10-6 14:58 | 只看该作者
文件包含部分没处理好

使用特权

评论回复
6
McuPlayer| | 2010-10-6 16:27 | 只看该作者
但是就是结果不对了

这个对错误的描述,你不觉得太笼统吗?

使用特权

评论回复
7
e2zone|  楼主 | 2010-10-6 17:51 | 只看该作者
这个对错误的描述,你不觉得太笼统吗?
McuPlayer 发表于 2010-10-6 16:27

嗯。
因为我做的按键的程序,我说的那个结果不对,就是按下按键没有反应了。
谢谢!呵呵~

使用特权

评论回复
8
hgjinwei| | 2010-10-6 19:19 | 只看该作者
估计全局变量太多了,然后搂主自己也分不清哪些是"extern"哪些是"static"。

PS:猜测而已。

使用特权

评论回复
9
handlike| | 2010-10-6 20:41 | 只看该作者
你合成一个程序后做对了,然后再分成2个C,你来做个逆向思考。做对后。4个C的就不成问题了。
回过头来再想问题出在哪,你个就明白了。

使用特权

评论回复
10
e2zone|  楼主 | 2010-10-6 20:44 | 只看该作者
估计全局变量太多了,然后搂主自己也分不清哪些是"extern"哪些是"static"。

PS:猜测而已。
hgjinwei 发表于 2010-10-6 19:19

我能分清楚,不过确实是挺多的。
真是郁闷.

使用特权

评论回复
11
gys123456| | 2010-10-6 21:34 | 只看该作者
我感觉你可以把它分细化下来调试

使用特权

评论回复
12
e2zone|  楼主 | 2010-10-6 22:16 | 只看该作者
你合成一个程序后做对了,然后再分成2个C,你来做个逆向思考。做对后。4个C的就不成问题了。
回过头来再想问题出在哪,你个就明白了。
handlike 发表于 2010-10-6 20:41

我把那些都弄到一个.c中什么都没变,都没改就是对的,但是不知道为什么分开就不对了,并且分开的时候编译连接都没问题。
都不知道该怎么弄。
谢谢大家。

使用特权

评论回复
13
jt4117| | 2010-10-7 01:32 | 只看该作者
用软件仿真自己试一试就知道了!

使用特权

评论回复
14
fzjswn| | 2010-10-7 10:01 | 只看该作者
没有定义成全局变量吧!

使用特权

评论回复
15
linqing171| | 2010-10-7 15:40 | 只看该作者
把.h文件贴出来看看。

使用特权

评论回复
16
e2zone|  楼主 | 2010-10-7 15:58 | 只看该作者
好了,现在搞定了。
谢谢大家。
结贴!呵呵~

使用特权

评论回复
17
zilaifun| | 2010-10-9 09:35 | 只看该作者
应该是头文件的包含关系没处理好,写在一个c文件中不涉及到包含关系问题。写成多个c文件,需要在引用其它文件中的函数时,extern声明或用h文件包含。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

77

帖子

1

粉丝