轉自:http://blog.csdn.net/fb408487792/article/details/49925259
Zend/zend_portability.h
#if PHP_HAVE_BUILTIN_EXPECT
# define EXPECTED(condition) __builtin_expect(!!(condition), 1)
# define UNEXPECTED(condition) __builtin_expect(!!(condition), 0)
#else
# define EXPECTED(condition) (condition)
# define UNEXPECTED(condition) (condition)
#endif
main/php-config.h
/* Whether the compiler supports __builtin_expect */
#define PHP_HAVE_BUILTIN_EXPECT 1
解釋:
# define EXPECTED(condition) __builtin_expect(!!(condition), 1)
# define UNEXPECTED(condition) __builtin_expect(!!(condition), 0)
// !!(condition)真假變量 非非得真的邏輯運算,以0或1來達到預判
// if(EXPECTED(condition)) 等價于 if(condition)
// if(UNEXPECTED(condition)) 也等價于 if(condition)
// __builtin_expect((condition),1) 表示 condition 的值為真的可能性更大。
// __builtin_expect((condition),0) 表示 condition 的值為假的可能性更大。