美文网首页
关于__builtin_expect

关于__builtin_expect

作者: 小胖_20c7 | 来源:发表于2019-07-17 14:36 被阅读0次
先上代码
11 #include <stdio.h>
12 
13 #define likely(x) __builtin_expect(!!(x), 1)
14 #define unlikely(x) __builtin_expect(!!(x), 0)
15 
16 int main(int argc, const char* argv[]) {
17     int count = 10;
18     if (likely(count > 1))
19         printf("It is ok\n");
20     else
21         printf("It isn't ok\n");
22 
23     int tmp = !!5;
24     printf("tmp = %d\n", tmp);
25 
26     tmp = !!0;
27     printf("tmp = %d\n", tmp);
28     return 0;
29 }
再上输出结果
It is ok
tmp = 1
tmp = 0
结论

1 __builtin_expect是gcc提供的,目的是为了优化代码
2 __builtin_expect(Exp, N),意思是Exp == N的概率很大
3 !!的写法,是为了确保最后表达式的值 = 0 or 1

相关文章

  • jemalloc 之 拾人牙慧

    一、__builtin_expect __builtin_expect 提供分支预测功能,参看这里。likely ...

  • 关于__builtin_expect

    先上代码 再上输出结果 结论 1 __builtin_expect是gcc提供的,目的是为了优化代码2 __bui...

  • __builtin_expect

    define likely(x) __builtin_expect(!!(x),1) define unlikel...

  • __builtin_expect

    __builtin_expect(EXP, N)。意思是:EXP==N的概率很大 这个指令是gcc引入的,作用是"...

  • GCC关键字

    __builtin_expect: __thread: 参考文献: __thread 关键字 - 简书 (jian...

  • __builtin_expect 总结

    今天看GCD 源码,有个宏定义中有 __builtin_expect命令 这个命令干么的呢? 这个指令是gcc引入...

  • __builtin_expect讲解

    5月20号之前完成

  • __builtin_expect 说明

    这个指令是gcc引入的,作用是允许程序员将最有可能执行的分支告诉编译器。这个指令的写法为:__builtin_ex...

  • 关于 PHP 内核中 __builtin_expect 的解释

    转自:http://blog.csdn.net/fb408487792/article/details/49925...

  • alloc的分析

    __builtin_expect(exp, n) 方法表示 exp 很有可能为 0,返回值为 exp。你可以将 f...

网友评论

      本文标题:关于__builtin_expect

      本文链接:https://www.haomeiwen.com/subject/vjvqlctx.html