一乐电子

 找回密码
 请使用微信账号登录和注册会员

QQ登录

只需一步,快速开始

微信扫码登录

手机号码,快捷登录

手机号码,快捷登录

搜索
查看: 3797|回复: 15

[其他综合] 原来Keil认为HOUR和hour等是相同的

[复制链接]
发表于 2013-11-19 18:58 | 显示全部楼层 |阅读模式
最近研究电波钟,需要用到较多的时间变量,于是定义了
uchar HOUR,MIN,SEC;
uchar hour[3];
uchar min[3];
一直认为C是区分大小写的,可是编译的时候Keil却提示HOUR,MIN等定义重复,只好将其中的一个改名编译才通过。
发表于 2013-11-19 19:02 | 显示全部楼层
在C下是区分大小写的,但汇编不能区分,所以会链接失败
回复

使用道具 举报

 楼主| 发表于 2013-11-19 19:04 | 显示全部楼层
xwj 发表于 2013-11-19 19:02
在C下是区分大小写的,但汇编不能区分,所以会链接失败

我写的是C啊
回复

使用道具 举报

发表于 2013-11-19 19:06 | 显示全部楼层
楼主这是全局变量,编译时在为变量分配空间的过程中使用的临时文件里全是大写,使得看起来好像无法区分大小写。
如果在函数里就没这个问题,比如我这里提示
C.C(11): warning C280: 'HOUR': unreferenced local variable
C.C(11): warning C280: 'MIN': unreferenced local variable
C.C(11): warning C280: 'SEC': unreferenced local variable
C.C(12): warning C280: 'hour': unreferenced local variable
C.C(13): warning C280: 'min': unreferenced local variable
回复

使用道具 举报

 楼主| 发表于 2013-11-19 19:16 | 显示全部楼层
reiyawea 发表于 2013-11-19 19:06
楼主这是全局变量,编译时在为变量分配空间的过程中使用的临时文件里全是大写,使得看起来好像无法区分大小 ...

原来如此。
变量虽然只是在一个子函数里使用,但需要保存较长的时间,只好用全局变量了。
回复

使用道具 举报

发表于 2013-11-19 19:29 | 显示全部楼层
用Source Insight翻三个月的源码,就再也不会这么随心所欲了,
至少知道全大,首大,全小一般都用在谁身上的
回复

使用道具 举报

发表于 2013-11-19 19:44 | 显示全部楼层
现在一般不瞎命名!之前在Keil中使用大写小写加字符吃了大亏!比如 t1_Ton 这种定义多了 编译后仿真和运行老是数据乱跳!
回复

使用道具 举报

发表于 2013-11-19 20:54 | 显示全部楼层
第一点:
C51≠C,这里的C指的是ANSI C
keil从来没具体说自己支持标准C
第二点:
即使在标准C里,也不建议这样用
回复

使用道具 举报

发表于 2013-11-19 21:31 | 显示全部楼层
先学几年代码规范再说,
不然以后用
aAaaaa
Aaaaaa
aaaaa
aaaa
aaa
aa
a
这种变量编写原子弹发射代码算了。
回复

使用道具 举报

发表于 2013-11-19 21:36 | 显示全部楼层
先学好C语言再来好话吧。。。

点评

话不能这么说,楼主的理解是对的,事实上教材也是这么教的 只是用的编译器不鸟这套  发表于 2013-11-19 21:54
回复

使用道具 举报

本版积分规则

QQ|一淘宝店|手机版|商店|一乐电子 ( 粤ICP备09076165号 ) 公安备案粤公网安备 44522102000183号

GMT+8, 2025-11-1 01:22 , Processed in 0.034420 second(s), 28 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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