ZHCUAV8W january 1998 – march 2023 66AK2E05 , 66AK2H06 , 66AK2H12 , 66AK2H14 , AM1705 , AM1707 , AM1802 , AM1806 , AM1808 , AM1810 , AM5K2E04 , OMAP-L132 , OMAP-L137 , OMAP-L138 , SM470R1B1M-HT , TMS470R1A288 , TMS470R1A384 , TMS470R1A64 , TMS470R1B1M , TMS470R1B512 , TMS470R1B768
編譯器會根據(jù)節(jié) 2.11中提到的因素決定內(nèi)聯(lián)哪些函數(shù)。此外,還有一些限制可以取消函數(shù)被自動內(nèi)聯(lián)或基于關(guān)鍵字內(nèi)聯(lián)的資格。
如果函數(shù)符合以下條件,編譯器將保留調(diào)用:
如果函數(shù)具有會給編譯器帶來困難情形的特性,編譯器也不會內(nèi)聯(lián)調(diào)用:
無論其他指示如何(包括被調(diào)用函數(shù)上的 FUNC_ALWAYS_INLINE pragma 或 always_inline 屬性),使用 NOINLINE pragma 注釋的語句中的調(diào)用都不會被內(nèi)聯(lián)。
如果使用 FORCEINLINE pragma 注釋的語句中的調(diào)用未因上述原因之一被取消資格,即使被調(diào)用函數(shù)具有 FUNC_CANNOT_INLINE pragma 或 cannot_inline 屬性,則該調(diào)用都是被內(nèi)聯(lián)的。
換句話說,語句級 pragma 會覆蓋函數(shù)級 pragma 或?qū)傩?。如?NOINLINE 和 FORCEINLINE 都適用于同一條語句,則首先出現(xiàn)的語句被使用,其余語句被忽略。