Cの隠れた機能 質問する

Cの隠れた機能 質問する

すべての C コンパイラ実装の背後には標準があるため、隠された機能は存在しないはずです。それにもかかわらず、すべての C 開発者が常に使用する隠された/秘密のトリックを持っていることは間違いありません。

ベストアンサー1

GCC コンパイラのトリックですが、コンパイラに分岐指示のヒントを与えることができます (Linux カーネルでは一般的)

#define likely(x)       __builtin_expect((x),1)
#define unlikely(x)     __builtin_expect((x),0)

見る:http://kerneltrap.org/node/4705

これの気に入っている点は、一部の機能に表現力も加わることです。

void foo(int arg)
{
     if (unlikely(arg == 0)) {
           do_this();
           return;
     }
     do_that();
     ...
}

おすすめ記事