作者:paradoxfx 來源:電子產品世界 在C/C++與匯編語言混合編程的情況下,一般我們都會選擇C/C++來實現所期待的功能。在我們用C/C++來實現某些位操作、數學運算等功能后,編譯器會盡可能地把它們編譯為一些已經高度優化的匯編函數(內聯函數),一般情況下是一條或者多條匯編指令的集合,在封裝之后,我們可以在C/C++編程的時候直接使用這樣的內聯函數。如果不直接使用它們,那么在單步調試的時候,也可以從C/C++代碼編譯生成的匯編代碼中找到對應的內聯函數,能夠幫助我們加深對編譯和代碼執行的理解。這些編譯器的內聯函數都有一個顯著的外觀,即以兩個下劃線作為開頭,而使用方法則與C/C++編程中函數的調用形式是一樣的。例如: long lvar; int ivar; unsigned int uivar; lvar = __mpyxu(ivar, uivar); 下面我們就列舉一下TMS320C28x C/C++ 編譯器的內聯函數。為了方便對比說明,表格并不是完全安裝函數名的字母順序來排列的。 表1 TMS320C28x C/C++ 編譯器的內聯函數列表 表2 TMS320C28x C/C++ 編譯器的內聯函數列表-面向FPU |