5.19 内建函数:__builtin_expect
使用方法
__builtin_expect (exp, c);
返回值:exp
意义:表示exp的值为c的可能性很大
likely和unlikely
#define likely(x) __builtin_expect (!!(x), 1)
#define unlikely(x) __builtin_expect (!!(x), 0)
例程
指导编译器进行优化
提高流水线的效率
**
/************************************************
* Copyright(C) zhaixue.cc. All rights reserved
*
* Filename: expect.c
* Author: litao.wang
* E-mail: 3284757626@qq.com
* Description:
* Create: 2018-01-02 17:15:42
* Last Modified: 2018-01-02 19:02:50
************************************************/
#include<stdio.h>
#define likely(x) __builtin_expect(!!(x),1)
#define unlikely(x) __builtin_expect(!!(x),0)
int main(void)
{
int a;
scanf("%d",&a);
if(unlikely(a==0))
{
printf("%d",0);
printf("%d",1);
printf("%d",2);
printf("%d",3);
printf("%d",4);
printf("\n");
}
else
{
printf("%d",5);
printf("%d",6);
printf("%d",7);
printf("%d",8);
printf("%d",9);
printf("\n");
}
return 0;
}