当前位置: 首页 > news >正文

江门网站设计素材/万网域名续费

江门网站设计素材,万网域名续费,潍坊市建设局网站,网站建设中 html在Linux kernel的源代码中,经常能见到if(likely(x))或if(unlikely(x))之类的用法,其确切含义需要说明一下,以便更好的理解kernel的源代码。likely与unlikely这两个宏在linux/compiler.h中的定义如下:#define likely(x) __builti…
在Linux kernel的源代码中,经常能见到if(likely(x))或if(unlikely(x))之类的用法,其确切含义需要说明一下,以便更好的理解kernel的源代码。
likely与unlikely这两个宏在linux/compiler.h中的定义如下:
#define likely(x)   __builtin_expect(!!(x),1)
#define unlikely(x)   __builtin_expect(!!(x),0)
很明显,需要先弄清楚这个__builtin_expect()函数的意义。
__builtin_expect()是gcc的一个内建函数,其原型如下:
long __builtin_expect (long exp, long c);
记住该函数由GCC本身提供,用于优化代码。只中参数exp为任一表达式,c必须为常量值,其意义是在exp==c时,该函数返回非0值,意即希望exp==c。
回到likely和unlikely,likely实际是希望表达式x==1,即表达式x成立,并且在代码实际执行中,表达式x在绝大多数情况下是成立的,相反,unlikely是希望表达式在绝大多数情况下不成立,
如果有下列代码:
if(unlikely(a > b) {
    foo();
}
这段代码的意思是,在绝大多数情况下a > b这个表达式是不成立的,不成立时执行函数foo().
另外有一点要注意的是,由于likely定义时用的常量是1,unlikely用的常量是0,这正好符合c/c++语言中bool变量的实际值,而_builtin_expect()函数对exp与c进行严格相等的比较的,
因此使用likely和unlikely时,其参数应该只使用逻辑表达式,因为逻辑表达式的值只有0或1。除非真要判断某个变量的值是1或0时,才会将其它类型的参数传给likely或unlikely。这一点可能很多人会不小心用错。
使用这两个宏定义的好处是优化条件判断。
http://www.lbrq.cn/news/1290079.html

相关文章:

  • 网站 建设 函/seo网站推广经理
  • 免费发广告网站/疫情放开死亡人数最新消息
  • 网站建设的工作总结/站长统计app软件下载2021
  • 个人备案做企业网站/东莞网站提升排名
  • 一个空间怎么放2个网站/广州最新疫情最新消息
  • 移动版网站建设的必要性/电商网站建设公司哪家好
  • 做ui必要的网站/链接交换平台
  • 安徽网站排名/广州seo推广服务
  • 我想自己做网站可以赚钱/交换友链
  • 云制造网站/推广发帖网站
  • 天津网站营销/平台广告推广
  • 建设官方网站企业网银登录/百度推广的优势
  • 广州在线网站制作/济宁百度竞价推广
  • 网站建设应走什么会计科目/爱站网关键词密度
  • 软件开发工具属于/企业seo关键字优化
  • 怎么给网站做https/成品网站源码在线看
  • 南京网站设计制作/企业培训有哪些方面
  • 中英文网站后台/电子商务与网络营销教案
  • 青海个人旅游网站建设/爱站官网
  • 集约化网站群建设内容/百度指数关键词工具
  • 龙岗网站建设技术/营业推广方案
  • 解析网站怎么做/站长工具日本
  • 旅游类网站设计/重庆网站优化公司
  • 深圳建设局网站/武汉seo网站
  • 网站域名密码忘了/百度云登录
  • 建设网站需要申请什么/百度如何免费打广告
  • 厦门网站建设哪家便宜/网络推广公司是干嘛的
  • 网站域名备案办理拍照/网络营销策划方案模板范文
  • 东阳网站制作/推广网上国网
  • 建安证查询网站/百度关键词优化送网站
  • OpenLayers 快速入门(七)矢量数据
  • 阿里云ODPS十五周年重磅升级发布:为AI而生的数据平台
  • 学生信息管理系统 - HTML实现增删改查
  • 设计模式七:抽象工厂模式(Abstract Factory Pattern)
  • 算法第26天|贪心算法:用最少数量的箭引爆气球、无重叠区间、划分字母区间
  • Docker Compose UI远程访问教程:结合贝锐花生壳实现内网穿透