What is the advantage of GCC's __builtin_expect in if else statements?
问题 I came across a #define in which they use __builtin_expect . The documentation says: Built-in Function: long __builtin_expect (long exp, long c) You may use __builtin_expect to provide the compiler with branch prediction information. In general, you should prefer to use actual profile feedback for this ( -fprofile-arcs ), as programmers are notoriously bad at predicting how their programs actually perform. However, there are applications in which this data is hard to collect. The return value