10
Как работают вероятные / маловероятные макросы в ядре Linux и в чем их выгода?
Я копался в некоторых частях ядра Linux и нашел такие вызовы: if (unlikely(fd < 0)) { /* Do something */ } или if (likely(!err)) { /* Do something */ } Я нашел их определение: #define likely(x) __builtin_expect((x),1) #define unlikely(x) __builtin_expect((x),0) Я знаю, что они для оптимизации, но как они работают? …