打印

我想修改C运算符优先级

[复制链接]
2272|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
gbchang|  楼主 | 2011-7-1 17:27 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 gbchang 于 2011-7-1 17:31 编辑

你犯过如下错误吗?
if( 0x80 == flag & 0x80 )
intC = bytA << 8 + bytB

我希望下次修订C标准时,把位操作的优先级提高,至少也要比逻辑操作的都要高吧
就是 << >> & | ^ 都提到 == > < != 前面
或者再狠一点,到算术运算符前面,大家看怎样?
这样对硬件工程师好像就方便许多 ^-^,不知对软件程序员影响如何

但这只是我的想法,米国人不见得比我笨,那为什么是现在这种优先级呢?

附C优先级顺序
()        []        ->        .        ::        ++        --
!        ~        ++        --        -        +        *        &        (type)        sizeof
->*        .*
*        /        %
+        -
<<        >>
<        <=        >        >=
==        !=
&
^
|
&&
||
? :
=        +=        -=        *=        /=        %=        &=        ^=        |=        <<=        >>=
,

相关帖子

沙发
邪恶猛男| | 2011-7-1 17:46 | 只看该作者
if( 0x80 == flag & 0x80 )
intC = bytA << 8 + bytB

如果是我写我就这样写if( 0x80 == (flag & 0x80 ))
intC = (bytA << 8) + bytB

我是不会因为优先级这样对我这样**力不是很好的产生错觉

使用特权

评论回复
板凳
huangqi412| | 2011-7-1 18:10 | 只看该作者
有空去折腾优先级的都应该打PP,   括号不好么。。。

使用特权

评论回复
地板
johnwjl| | 2011-7-1 19:16 | 只看该作者
LZ这种钻牛角尖的精神不可取。

使用特权

评论回复
5
hgjinwei| | 2011-7-1 22:22 | 只看该作者
只知道括号优先级最高,你们慢聊,我打酱油去了。

使用特权

评论回复
6
蜗牛狂奔| | 2011-7-4 13:07 | 只看该作者
精神可嘉,有创新精神!赞一个!

使用特权

评论回复
7
老鱼探戈| | 2011-7-4 13:42 | 只看该作者
打点醋,回家吃糖醋鱼~~

使用特权

评论回复
8
lxyppc| | 2011-7-4 14:00 | 只看该作者
我希望下个标准出来后只有括号是最高优先级,其它的都是随机优先级

使用特权

评论回复
9
fushaobing| | 2011-7-5 17:35 | 只看该作者
《C专家编程》2.3.2 "有些运算符的优先级是错误的"
当C语言最初文献的作者告诉你“有些运算符的优先级是错误的”的时候,就像Kernighan和Ritchie在The C Programming Language第3页中所说的那样,你肯定会觉得确实存在问题。尽管如此,ANSI C在修改运算符优先级方面并没有采取什么动作,这也毫不奇怪,因为如果对运算符的优先级作了修改,那么大量现有的代码就会出现问题。

使用特权

评论回复
评分
参与人数 1威望 +4 收起 理由
gbchang + 4 这才是中肯的正能量
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

6

主题

93

帖子

1

粉丝