zyyn123 发表于 2012-7-27 10:46:53

请教,关于Keil 2 与 Keil3 的具体有哪些区别?

本来用Keil 2编译的工程文件下载到单片中能够正常运行,同样的工程用Keil 3 编译,下载到单片机中运行就不正常了。

dashashi 发表于 2012-7-27 12:47:58

下个Keil4吧

zyyn123 发表于 2012-7-27 13:35:42

dashashi 发表于 2012-7-27 12:47 static/image/common/back.gif
下个Keil4吧

Keil 4装过了,也出现同样的问题。而且编译后总是提示一个警告。warning C291: not every exit path returns a value
不知为何?

haizheng4 发表于 2012-7-27 13:41:40

那就是你的配置有不一致的地方
晶振啊 地址啊 之类的
编译器肯定不会出那么大的问题的

zyyn123 发表于 2012-7-27 15:25:04

haizheng4 发表于 2012-7-27 13:41 static/image/common/back.gif
那就是你的配置有不一致的地方
晶振啊 地址啊 之类的
编译器肯定不会出那么大的问题的 ...

晶振设置应该没错,其他都是默认设置。其实也不是程序编译完了不能运行,只是运行中有一部分会显示乱码。

dashashi 发表于 2012-7-27 15:39:16

警告是函数可能没有返回值,检查下

szxy06dq 发表于 2012-7-27 15:43:15

好看点(字数限制)

zyyn123 发表于 2012-7-27 17:08:00

有次我做实验,我先装了Keil 3(PJ的,能用到2032年),然后我又装了Keil 4(PJ的,本身这个PJ时间是到2020年),之后发现使用时间从2020年变成了2032年,也就是Keil 3的使用时间,这次我又用Keil 4 编译了下我的这个程序,发现这个(warning C291: not every exit path returns a value
)警告没有了.我怀疑是不是我的Keil 4 PJ的不彻底,有功能的限制。我下载了好几个版本的,可每个版本都是这样呀。{:sad:}{:sad:}

xwkm 发表于 2012-7-27 17:34:21

sdcc解决一切

oufuqiang 发表于 2012-7-27 17:47:01

warning C291: not every exit path returns a value
警告:不是所有的路径都会有返回值。

也就是说,你的某个函数有多个执行后的出口,可能从这个if出去,也可能从那个switch-case的某个分支出去,但不是每一个路径都有返回值,也就是说,可能从这个if里面出去,没有return,这样就出错了。应该是程序问题,我现在用的是9.50A版本,没有什么问题。

zyyn123 发表于 2012-7-27 18:11:39

oufuqiang 发表于 2012-7-27 17:47 static/image/common/back.gif
warning C291: not every exit path returns a value
警告:不是所有的路径都会有返回值。



首先先谢谢大师的回复,我的程序调用的是本站网友“laipi”最强万年历文件中的数据,警告的指向也是那里。但是我用Keil 2与 Keil 3编译都是没有那个警告的。

zyyn123 发表于 2012-7-29 10:54:53

我的问题已经解决了,我现装的是Keil 4 V905,在BXAK网友的提示下打上了0xFD补丁,显示乱码的问题解决了。
至于warning C291: not every exit path returns a value的问题,也已找到。
在这里再次感谢网友们的热心回复,谢谢大家了。

zyyn123 发表于 2012-7-29 11:01:26

oufuqiang 发表于 2012-7-27 17:47 static/image/common/back.gif
warning C291: not every exit path returns a value
警告:不是所有的路径都会有返回值。



谢谢大师的回复,问题我已经找到,的确是我的程序中有一处没有返回值。

millwood0 发表于 2012-7-29 11:04:32

easy: keil 3 = keil 2 + 1
页: [1]
查看完整版本: 请教,关于Keil 2 与 Keil3 的具体有哪些区别?