MPLAB XC16編譯器提供了一系列內(nèi)建函數(shù),使C語言編程人員可以訪問目前只能通過行內(nèi)匯編訪問的匯編運算符或機器指令。內(nèi)建函數(shù)名都有一個前綴__builtin_,源代碼用C語言編寫,在句法上類似于函數(shù)調(diào)用,但它會被編譯成直接實現(xiàn)功能的匯編代碼,且不涉及函數(shù)調(diào)用或庫函數(shù)。
相比于使用行內(nèi)匯編,內(nèi)建函數(shù)具有以下優(yōu)勢:
1.提供專用的內(nèi)建函數(shù)可以簡化編碼。
2.使用行內(nèi)匯編時會禁止某些優(yōu)化功能,而使用內(nèi)建函數(shù)則不會。
3.對于使用專用寄存器的機器指令來說,編寫行內(nèi)匯編代碼時要特別注意避免寄存器分配錯誤。
而內(nèi)建函數(shù)使這個過程更簡單,無需考慮每個機器指令的特殊寄存器要求。內(nèi)建函數(shù)的編程接口和使用說明請參考《MPLAB XC16編譯器用戶指南》。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。
舉報投訴
-
函數(shù)
+關(guān)注
關(guān)注
3文章
4417瀏覽量
67499 -
編譯器
+關(guān)注
關(guān)注
1文章
1672瀏覽量
51592 -
MPLAB
+關(guān)注
關(guān)注
9文章
222瀏覽量
68559
發(fā)布評論請先 登錄
相關(guān)推薦
熱點推薦
GCC內(nèi)建函數(shù)問題?。?!
目前的代碼中使用了GCC的內(nèi)建函數(shù)__builtin_clz()和__builtin_popcount(),在CCS中編譯不能通過,請問,CCS是否有庫支持這兩個函數(shù),多謝!
發(fā)表于 06-21 18:30
MPLAB X IDE和XC16編譯器適用的頭文件是什么
和XC16編譯器必須有新的適用的頭文件。有人有建議嗎?順便說一下,我能夠成功地使用SPI總線進行文本討論,從而成功地實現(xiàn)了SPI通信。 以上來自于百度翻譯 以下為原文 I'm using Explorer
發(fā)表于 03-20 12:08
MPLAB-X 3.55無法識別XC16編譯器
一周前安裝它)。GC30編譯器是在C:\Studio\Microchip \ MPLABC30\v3.31中,為什么MPLAB-X找不到XC16????? 以上來自于百度翻譯 以下為原文 I am
發(fā)表于 04-01 14:39
xc16編譯器不編譯延遲向量
大家好。和平在每個人身上。要編譯長代碼的所有部分,而我的編譯器XC16 V 1.31處于優(yōu)化級別。S是代碼的一部分。當在S模式下編譯時,它不編譯
發(fā)表于 04-17 08:48
內(nèi)置函數(shù)真的內(nèi)置到XC16編譯器嗎?
內(nèi)置函數(shù)是否在“庫”中,或者它們真的“內(nèi)置”到XC16編譯器嗎?不可能從編譯器中分離出任何未使用的內(nèi)置代碼,就像圖書館那樣嗎?我在PIC33E中使用以下內(nèi)容:u
發(fā)表于 05-07 11:26
MPLAB X v2.10軟件下載
MPLAB X IDE v2.00按照單片機的位數(shù),有XC8、XC16、XC32,三款編譯器,可以有選擇的安裝也可以都安裝上去。
發(fā)表于 04-17 18:24
?222次下載
如何將C源代碼從MPLAB C18編譯器移植到MPLAB XC8C編譯器的詳細概述
本文檔介紹了針對PIC18 MCU的MPLAB? C編譯器(以前的說法,本文檔稱為MPLAB C18)與MPLAB XC8 C
發(fā)表于 06-07 09:28
?30次下載
面向嵌入式工程師的MPLAB XC16用戶指南
本文檔介紹了5個適用于16位器件和MPLAB? XC16 C編譯器的代碼示例,這些代碼示例使用通用C 接口(Common C Interface,CCI)。關(guān)于CCI 的更多信息,請參
發(fā)表于 04-29 10:26
?25次下載
Microchip推出MPLAB? XC統(tǒng)一編譯器許可證 更高效的管理多個許可證
MPLAB XC8、XC16、XC-DSC 和 XC32 C 編譯器的
如何在MPLAB XC16編譯器內(nèi)建函數(shù)
評論