10
Come funzionano le macro probabili / improbabili nel kernel Linux e quali sono i loro vantaggi?
Ho cercato alcune parti del kernel Linux e ho trovato chiamate come questa: if (unlikely(fd < 0)) { /* Do something */ } o if (likely(!err)) { /* Do something */ } Ho trovato la loro definizione: #define likely(x) __builtin_expect((x),1) #define unlikely(x) __builtin_expect((x),0) So che sono per l'ottimizzazione, ma come …