国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【ARM 嵌入式 編譯系列 5 -- GCC 內(nèi)建函數(shù) __builtin 介紹】

這篇具有很好參考價值的文章主要介紹了【ARM 嵌入式 編譯系列 5 -- GCC 內(nèi)建函數(shù) __builtin 介紹】。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。


請閱讀【ARM GCC 編譯專欄導(dǎo)讀】

上篇文章:ARM 嵌入式 編譯系列 4.2 – GCC 鏈接規(guī)范 extern “C“ 介紹
下篇文章:ARM 嵌入式 編譯系列 6 – GCC objcopy, objdump, readelf, nm 介紹

什么是GCC內(nèi)建函數(shù)?

GCC提供了一些專門的功能,用于訪問特定的硬件指令或者實現(xiàn)特定的優(yōu)化,它們被稱為"__builtin"函數(shù)。

這些函數(shù)在語法上看起來像是普通函數(shù),但在編譯階段會被編譯器直接轉(zhuǎn)換為一些特定的機器指令,而不是像普通函數(shù)那樣調(diào)用通用的函數(shù)調(diào)用協(xié)議。

GCC提供的__builtin函數(shù)非常多,包括了數(shù)學(xué)函數(shù)、字符串操作內(nèi)存操作、位操作、類型轉(zhuǎn)換、計數(shù)前導(dǎo)零/尾零CPU指定指令等等功能。

使用__builtin函數(shù)可以在不犧牲可讀性的同時獲得更高的性能。但是請注意,由于這些函數(shù)直接對應(yīng)特定的硬件指令,所以在不同的硬件和操作系統(tǒng)上,它們的效果和性能可能會有所不同。因此,在編寫依賴于__builtin函數(shù)的代碼時,需要特別注意移植性的問題。

要在GCC中使用__builtin函數(shù),只需要在代碼中直接調(diào)用即可,無需包含任何頭文件。

GCC 常見內(nèi)建函數(shù)

GCC編譯器提供了很多內(nèi)建函數(shù),這些函數(shù)可以幫助我們進行一些特殊的操作,以下是一些常見的GCC內(nèi)建函數(shù):

  • __builtin_expect:提供編譯器關(guān)于一個條件判斷表達式結(jié)果的預(yù)期值,用于優(yōu)化代碼, 見likelyunlikely的實現(xiàn);文章來源地址http://www.zghlxwxcb.cn/news/detail-644134.html

到了這里,關(guān)于【ARM 嵌入式 編譯系列 5 -- GCC 內(nèi)建函數(shù) __builtin 介紹】的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 【ARM 嵌入式 編譯系列 10 -- GCC 編譯縮減可執(zhí)行文件 elf 文件大小】

    請閱讀 【ARM GCC 編譯專欄導(dǎo)讀】 上篇文章:ARM 嵌入式 編譯系列 9-- GCC 編譯符號表(Symbol Table)的詳細介紹 下篇文章:ARM 嵌入式 編譯系列 10.1 – GCC 編譯縮減可執(zhí)行文件 elf 文件大小 在開發(fā)過程總,總是希望編譯出來的可執(zhí)行文件盡量小,因為這樣可以節(jié)省更多的磁盤空間

    2024年02月09日
    瀏覽(120)
  • 【ARM 嵌入式 編譯系列 4.2 -- GCC 鏈接規(guī)范 extern “C“ 介紹】

    請閱讀 【ARM GCC 編譯專欄導(dǎo)讀】 上篇文章:ARM 嵌入式 編譯系列 4.1 – GCC 編譯屬性 likely與unlikely 學(xué)習(xí) 下篇文章:ARM 嵌入式 編譯系列 5 – GCC 內(nèi)建函數(shù) __builtin 介紹 extern “C” 是一種鏈接規(guī)范,它用于告訴C++編譯器按照C語言的方式來鏈接代碼。這個主要用于在C++代碼

    2024年02月13日
    瀏覽(54)
  • 【ARM 嵌入式 編譯系列 7.3 -- GCC 鏈接腳本中 DISCARD 與 .ARM.exidx】

    【ARM 嵌入式 編譯系列 7.3 -- GCC 鏈接腳本中 DISCARD 與 .ARM.exidx】

    請閱讀 【嵌入式開發(fā)學(xué)習(xí)必備專欄 之 ARM GCC 編譯專欄】 在移植 RT-Thread 到 cortex-m33(RA4M2)上的時候,在編譯的時候遇到下面問題:

    2024年01月23日
    瀏覽(73)
  • 【ARM 嵌入式 編譯系列 2.5 -- GCC 編譯參數(shù)學(xué)習(xí) --specs=nano.specs選項 】

    請閱讀 【嵌入式開發(fā)學(xué)習(xí)必備專欄 之 ARM GCC 編譯專欄】 ARM 工具鏈 ( arm-none-eabi- ) 包括了一個叫作 --specs 的編譯器和鏈接器選項,這個選項允許用戶指定一個或多個 “specs” 文件,以影響編譯或鏈接階段的行為。Specs 文件包含一系列的命令行參數(shù),這些參數(shù)可以是編譯器選項

    2024年01月22日
    瀏覽(29)
  • 【ARM 嵌入式 編譯系列 6 -- GCC objcopy, objdump, readelf, nm 介紹】

    請閱讀 【ARM GCC 編譯專欄導(dǎo)讀】 上篇文章:ARM 嵌入式 編譯系列 5 – GCC 內(nèi)建函數(shù) __builtin 詳細介紹 下篇文章:ARM 嵌入式 編譯系列 7 – ARM GCC 鏈接腳本詳細講解 objcopy 是 GNU二進制工具集(binutils)的一部分,主要用于復(fù)制和轉(zhuǎn)換目標(biāo)文件。 在ARM GCC中, arm-none-eabi-objcopy 通常用于

    2024年02月13日
    瀏覽(79)
  • 【ARM 嵌入式 編譯系列 2.4 -- GCC 編譯參數(shù)學(xué)習(xí) -Wl,--gc-sections 】

    請閱讀 【嵌入式開發(fā)學(xué)習(xí)必備專欄 之 ARM GCC 編譯專欄】 在使用 GCC (GNU Compiler Collection) 進行編譯時,可以通過不同的編譯參數(shù)(標(biāo)志)來控制編譯行為、優(yōu)化級別、警告輸出等。以下是您列出的一些 GCC 編譯參數(shù)的介紹: 參數(shù) 作用 –all-warnings 與-Wall 相同。 請改用后一個選

    2024年01月22日
    瀏覽(20)
  • 【ARM 嵌入式 編譯系列 4 -- GCC 編譯屬性 __read_mostly 詳細介紹】

    請閱讀 【ARM GCC 編譯專欄導(dǎo)讀】 上篇文章:【ARM 嵌入式 編譯系列 3.3 – gcc 動態(tài)庫與靜態(tài)庫的鏈接方法介紹】 下篇文章:【ARM 嵌入式 編譯系列 4.1 – GCC 編譯屬性 likely與unlikely 學(xué)習(xí)】 __read_mostly 是一個在Linux內(nèi)核編程中用到的宏定義,這是一個gcc編譯器的屬性,用于告訴編

    2024年02月13日
    瀏覽(28)
  • 【ARM 嵌入式 編譯系列 11 -- GCC __attribute__((packed))詳細介紹】

    請閱讀 【ARM GCC 編譯專欄導(dǎo)讀】 上篇文章:ARM 嵌入式 編譯系列 10.3 – GNU elfutils 工具小結(jié) 下篇文章:ARM 嵌入式 編譯系列 11.1 – GCC attribute ((aligned(x)))詳細介紹 __attribute__((packed)) 是 GCC 編譯器的一個特性,它可以用于阻止編譯器為結(jié)構(gòu)體或聯(lián)合體的成員進行對齊優(yōu)化,從而使

    2024年02月12日
    瀏覽(80)
  • 【ARM 嵌入式 編譯系列 3.1 -- GCC __attribute__((used)) 使用】

    請閱讀 【ARM GCC 編譯專欄導(dǎo)讀】 上篇文章:ARM 嵌入式 編譯系列 3 – GCC attribute ((weak)) 弱符號使用 下篇文章:ARM 嵌入式 編譯系列 3.2 – glibc 學(xué)習(xí) 在普通的 C/C++ 程序中,有的時候為了調(diào)試,我們會特別地注釋掉某個函數(shù)的調(diào)用。然而在編譯時,編譯器會發(fā)現(xiàn),代碼中實現(xiàn)了

    2024年02月12日
    瀏覽(42)
  • 【ARM 嵌入式 編譯系列 2.6 -- GCC 編譯時間統(tǒng)計參數(shù) -ftime-report -Q 】

    請閱讀 【嵌入式開發(fā)學(xué)習(xí)必備專欄 之 ARM GCC 編譯專欄】 如果你想要統(tǒng)計 GCC 編譯過程中各個階段的時間,可以使用 GCC 的 -ftime-report 選項。這個選項可以讓編譯器在編譯結(jié)束后報告每個編譯階段所花費的時間。要使用這個選項,你可以在編譯命令中加入它,如下所示: 這將

    2024年01月21日
    瀏覽(43)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包