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
編譯器會根據節 2.11中提到的因素決定內聯哪些函數。此外,還有一些限制可以取消函數被自動內聯或基于關鍵字內聯的資格。
如果函數符合以下條件,編譯器將保留調用:
如果函數具有會給編譯器帶來困難情形的特性,編譯器也不會內聯調用:
無論其他指示如何(包括被調用函數上的 FUNC_ALWAYS_INLINE pragma 或 always_inline 屬性),使用 NOINLINE pragma 注釋的語句中的調用都不會被內聯。
如果使用 FORCEINLINE pragma 注釋的語句中的調用未因上述原因之一被取消資格,即使被調用函數具有 FUNC_CANNOT_INLINE pragma 或 cannot_inline 屬性,則該調用都是被內聯的。
換句話說,語句級 pragma 會覆蓋函數級 pragma 或屬性。如果 NOINLINE 和 FORCEINLINE 都適用于同一條語句,則首先出現的語句被使用,其余語句被忽略。