代码如下:

int test1 =  getpid() << 8  + (plugID << 4);
int test2 = (getpid() << 8) + (plugID << 4);DEBUG_FORMAT("getpid()=%d, plugID=%d, %d ? %d",getpid(), plugID,test1, test2);

  在吾理解中,test1应该是等于test2的。实际上呢?输出如下:

07-19 14:13:37.062 initSHM-15:getpid()=203488, plugID=1, -536870912 ? 52092944
07-19 14:13:37.231 initSHM-15:getpid()=203488, plugID=2,   52092928 ? 52092960

  从结果来判断,(这个编译器中)+的优先级高于<<,所以test1的实际优先级是:

int test1 =  getpid() (<< 8  + (plugID << 4));
int test2 = (getpid()  << 8) + (plugID << 4);

  test2才是我们期望的。所以,不要想当然,应该显式确定优先级。

没有用括号确定操作符的优先级顺序,导致错误一例相关推荐

  1. C/C++操作符的优先级和结合性问题浅析

    两个相邻操作符的执行顺序由它们的优先级决定.例如: a + b*c,在这个表达式中,乘法和加法操作符是两个相邻的操作符,由于乘法的优先级比加法高,所以乘法运算先于加法运算执行.编译器在这里别无选择,它 ...

  2. 详解:操作符的优先级

    前言: 复杂表达式的求值有三个影响的因素. 1. 操作符的优先级 2. 操作符的结合性 3. 是否控制求值顺序 两个相邻的操作符先执行哪个?取决于他们的优先级.如果两者的优先级相同,取决于他们的结合性 ...

  3. php中括号的优先级是不是最高的,理解php中操作符的优先级和结合性

    一般地说,操作符具有一组优先级,也就是执行他们的顺序. 操作符还具有结合性,也就是同一优先级的操作符的执行顺序.这种顺序通常有从左到右(简称左).从右到左(简称右)或者不相关. 下表中给出的是php中 ...

  4. 【LeetCode】老虎证券面试-括号嵌套且满足优先级

    LeetCode第20题:简单括号 力扣 题目描述: 给定一个只包括 '(',')','{','}','[',']' 的字符串 s ,判断字符串是否有效. 有效字符串需满足: 左括号必须用相同类型的右 ...

  5. PHP排列运算符优先级,php运算符优先级顺序详解

    在我们前面讲PHP逻辑运算符的时候,提到了PHP运算符的优先级,所谓的运算符优先级,指的是在表达式中哪一个运算符先计算,哪一个后计算,就好像,表达式 1 + 5 * 3 的结果 是 16 而不是 18 ...

  6. python操作符顺序_Python语言中的操作符与运算顺序

    在新鲜出炉的9月TIOBE编程语言排行榜上,Python历史性的挤下C++,次进入前三位,Python的热度也以肉眼可见的速度快速上涨着,学习Python的人越来越多,不只是成人,很多青少儿也选择从P ...

  7. IIS和.net framework 4.0的安装顺序导致的问题

    这篇文章主要介绍了IIS和.net framework 4.0的安装顺序导致的问题(重新注册.net 4.0),需要的朋友可以参考下 装了64位的Win7后,装了VS再装IIS,结果IIS里面有.NE ...

  8. ASP.NET Core启动地址配置方法及优先级顺序 | .NET 6 版本

    前言 上次,我们讨论了如何通过配置或代码方式修改启动地址:<ASP.NET Core启动地址配置方法及优先级顺序>.不过是基于 .NET 5 版本的. 由于 .NET 6 使用了最小 WE ...

  9. ASP.NET Core启动地址配置方法及优先级顺序

    前言 默认情况下,ASP.NET Core使用下列2个启动地址: http://localhost:5000 https://localhost:5001 同时,我们也可以通过配置或代码方式修改启动地 ...

  10. mysql以下运算符的优先级顺序正确的是_MySQL 运算符

    原文:http://www.jb51.net/article/25657.htm 我一贯秉承着一点:通过自己的双手真实的操作一遍之后的信息是最可靠的,所以在您参考这个小文儿的时候请不要只是" ...

最新文章

  1. 如何拓展外链引流,让网站成为“顶牛”?
  2. RMSE、MAE等误差指标整理
  3. 我是如何从技术转向产品的
  4. 使用 Castal DynamicProxy 简化 Silverlight 数据绑定
  5. 依赖注入模式中,为什么用对象而不是用数组传递?
  6. c4d启动无反应_浙江无填料喷雾式冷却塔
  7. python雪花算法生成id_理解分布式id生成算法SnowFlake
  8. c++ 操作oracle 最佳方式_oracle备份恢复基础详解
  9. css一行点点点_如何通过一点点创意使CSS成为不可能
  10. ThinkPHP3.2 常量参考
  11. 那个只能在win7的扫雷游戏,你能通关吗?今天用Python教大家,上号!!!
  12. 教学演示软件 模型十二 地理学的水循环模型
  13. fileman命令的帮助+?
  14. aspcms基本的安全策略
  15. 高压开关柜无线测温系统(高压开关柜在线监测系统应用案例)
  16. [Eigen中文文档] 归约、访问者和广播
  17. 2023中国传媒大学计算机考研信息汇总
  18. 刷脸支付只是开端 浅谈3D视觉如何推进新零售崛起
  19. 李开复台大演讲:人工智能来了,别怕
  20. 网站WebSite如何添加WebAPI

热门文章

  1. python做数据分析的包_Python数据分析包的学习
  2. python 将0矩阵转换为none列表_在学习线性代数时所探索的Python运用
  3. java怎么实现有消息时显示红点_Android中的红点提示怎么统一实现?
  4. Maven中的DependencyManagement和Dependencies
  5. shell脚本中的逻辑判断、文件目录属性判断、if特殊用法、case判断
  6. Qtum手机钱包教程
  7. 漫谈moosefs中cgi各项的意义
  8. Java_cookie 和session 的区别详解
  9. 微软工程师主讲的SqlServer2005视频教程
  10. 微信小程序的三级分销-项目表格设计