1.inline 函數必須在被調用之前定義(僅僅聲明它是不夠的);
2.在一個源代碼模塊中只能有一次 inline 定義;
3.如果類成員函數的定義出現在類定義之內,則成員函數就是隱式 inline 的。
如果函數太復雜,或者編譯器的選項改變了,則編譯器可能會忽略 inline 指令。大多數編譯器會拒絕包含如下語句的 inline 函數:
- while,for,do...whille 語句;
- switch 語句;
- 超過一定數量的代碼行。
如果編譯器拒絕了 inline 函數,則會將其當成常規函數,并會生成常規函數的調用。