__builtin_expect

发布时间 2023-09-07 22:37:28作者: 好人~
if (t_cachedTid == 0) // __builtin_expect 是一种底层优化 此语句意思是如果还未获取tid 进入if 通过cacheTid()系统调用获取tid
{
    cacheTid();
}
if (__builtin_expect(t_cachedTid == 0, 0)) // __builtin_expect 是一种底层优化 此语句意思是如果还未获取tid 进入if 通过cacheTid()系统调用获取tid
{
    cacheTid();
}

上面两个代码在得到的结果方面没有任何区别,但是第二代码中使用__builtin_expect告诉编译器t_cachedTid == 0为假的可能性比较大,编译器就会根据此对生成的二进制代码进行优化。具体怎么优化自己查。