又是括号,又是运算优先级!不知道要错多少次才能不再犯

[复制链接]
5780|19
 楼主| XIANSir 发表于 2011-6-24 12:03 | 显示全部楼层 |阅读模式
LVL1Time = TH0<<8+TL0;结果不对,总是0

于是拆开:
LVL1Time = TH0;
LVL1Time = LVL1Time<<8;
LVL1Time = LVL1Time+TL0;

结果对了。。。。。

开始有点迷糊,突然间,又想起了括号,C语言中的括号:
LVL1Time = (TH0<<8)+TL0;

很自然的,结果就对了。。。。。。。。。。。。。



同一个错误,不记得犯过多少次了:'(
delin17 发表于 2011-6-24 12:18 | 显示全部楼层
要习惯加括号
月下狂想曲 发表于 2011-6-24 12:42 | 显示全部楼层
lxyppc 发表于 2011-6-24 12:59 | 显示全部楼层
记住C语言只有两种优先级:
1. 乘除高于加减
2. 有括号的高于没有括号的
程序匠人 发表于 2011-6-24 14:27 | 显示全部楼层
嗯,原则只有两条

1、吃不准的情况下,一律用括号。
2、吃得准的情况下,也按第一条办理。

评分

参与人数 1威望 +1 收起 理由
sxhhhjicbb + 1 到位

查看全部评分

huangqi412 发表于 2011-6-24 15:21 | 显示全部楼层
优先级只是浮云,,,多加括号。。。
 楼主| XIANSir 发表于 2011-6-24 15:51 | 显示全部楼层
5# 程序匠人
呵呵,其实括号套的层数太多了会导致运算式不直观,不容易看懂——因为根本搞不清楚前面的前括号和后面的哪一个对应

当然了,为了少出那些让人发疯的奇怪错误,我以后也还要多多用括号的呀:D
jack_shine 发表于 2011-6-24 16:39 | 显示全部楼层
越简单越能看懂。。。
batsong 发表于 2011-6-24 17:40 | 显示全部楼层
编译器带括号匹配的,能看懂,不怕多
yhn1973 发表于 2011-6-24 18:12 | 显示全部楼层
c语言的优先级我到现在也没完全记住过。
yhn1973 发表于 2011-6-24 18:13 | 显示全部楼层
懒人的作法就是加括号
yhn1973 发表于 2011-6-24 18:16 | 显示全部楼层
记住C语言只有两种优先级:
1. 乘除高于加减
2. 有括号的高于没有括号的
lxyppc 发表于 2011-6-24 12:59

呵呵,我以前认识的一位C语言牛人就是只记住了这两点,当时还被我嘲笑了一通。
红金龙吸味 发表于 2011-6-24 19:55 | 显示全部楼层
1. 括号优先级最高
2. 先乘除 后加减
其它参考第一条
ttlasong 发表于 2011-6-24 22:03 | 显示全部楼层
1. 括号优先级最高
2. 先乘除 后加减
其它参考第一条
红金龙吸味 发表于 2011-6-24 19:55

加括号最保险。
原野之狼 发表于 2011-6-24 23:39 | 显示全部楼层
其实牛人都不加括号的:lol
dqyubsh 发表于 2011-6-25 06:29 | 显示全部楼层
那是因为牛人写汇编,还不带宏~~~
电子write_cai 发表于 2011-6-25 08:54 | 显示全部楼层
那就只好给牛人加上括号
王奉瑾 发表于 2011-6-25 07:47
画中有画,境界啊。
c126 发表于 2011-6-25 09:57 | 显示全部楼层
那就只好给牛人加上括号
王奉瑾 发表于 2011-6-25 07:47

最好再加个引号。
 楼主| XIANSir 发表于 2011-6-25 11:13 | 显示全部楼层
我今天又犯了括号的错误,我要把这些错误都记下来,都记下来:错误的形式:
if((sys>>(7-i))&0x01 == 0)
正确的形式:
if(((sys>>(7-i))&0x01) == 0)
原野之狼 发表于 2011-6-25 13:01 | 显示全部楼层
去看看开源世界的代码 或者看看WINDOWS提供的代码 有多少加括号的
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:冷暖自知,泰然处之;持之以恒,必有所成!

0

主题

609

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部