C11 standard (ISO/IEC 9899:2011): 6.7.4 Function specifiers (p: 125-127) C99 standard (ISO/IEC 9899:1999): 6.7.4 Function specifiers (p: 112-113)
而 c, c++ 的 inline 有點不同,
c 的 inline 如果定義在 .h, 一定要加上 static, 否則會有 list 1 的錯誤。
c++ 的 inline 不需要加上 static, 但如果加上 static 也是可以, 但是加上了 static inline 的 c++ inline function, 對於 inline function 裡頭的 static ojbect, 會有不一樣的行為。
參考: static variables in an inlined function
沒有 static 的 inline function, function 中的 static object 只會有一個, 但是加上了 static 的 inline function, inline function 被包含了幾次, 就會有幾個 static object。
source code:
https://github.com/descent/progs/tree/master/inline_function_with_static_obj
沒有留言:
張貼留言
使用 google 的 reCAPTCHA 驗證碼, 總算可以輕鬆留言了。
我實在受不了 spam 了, 又不想讓大家的眼睛花掉, 只好放棄匿名留言。這是沒辦法中的辦法了。留言的朋友需要有 google 帳號。