在閱讀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...