likely x 和unlikely x 巨集的使用

2021-09-12 06:17:07 字數 388 閱讀 1223

在閱讀linux核心**的時候,經常會看到likely(x)和unlikely(x)巨集的使用。那這兩個巨集有什麼作用呢?

這兩個巨集在核心中的定義如下:

# define likely(x) __builtin_expect(!!(x), 1)

# define unlikely(x) __builtin_expect(!!(x), 0)

可見這裡使用了gcc的內建函式__builtin_expect()。

likely(x)等價於x,即if(likely(x))等價於if(x),但是它告訴gcc,x取1的可能性比較大。

unlikely(x)等價於x,即if(unlikely(x))等價於if(x),但是它告訴gcc,x取0的可能性比較大。

linux 中likely與unlikely用法

前言核心版本 linux 4.13 在linux核心中,經常可以看見if likely x 或if unlikely x 語句,那麼likely和unlikely是什麼意思呢?本文將對likely和unlikely進行一些討論。likely和unlikely 參考 include linux com...

和 區別和聯絡, 和 區別和聯絡

和 區別和聯絡,和 區別和聯絡,實際專案中,什麼情況用哪種?首先,和 的聯絡 共同點 和 都可以用作 邏輯與 運算子,都是雙目運算子。具體要看使用時的具體條件來決定。無論使用哪種運算子,對最終的運算結果都沒有影響。情況1 當上述的運算元是boolean型別變數時,和 都可以用作邏輯與運算子。情況2 ...

rpx和樣式和class和flex

5 style 靜態的樣式統一寫到 class 中。style 接收動態的樣式,在執行時會進行解析,請盡量避免將靜態的樣式寫進 style 中,以免影響渲染速度。例 6 class 用於指定樣式規則,其屬性值是樣式規則中類選擇器名 樣式類名 的集合,樣式類名不需要帶上.樣式類名之間用空格分隔。關於f...