本原創文章屬於《Linux大棚》博客。
博客地址爲http://roclinux.cn。
文章作者爲roc wu
==
【規則】
你可以在後綴爲-inl.h的頭文件中定義比較複雜的內聯函數。
【詳解】
原則上,內聯函數的定義應該放在頭文件中,以便編譯器能夠在內聯函數調用時直接展開代碼。然而,按照.h文件和.cpp/.cc文件的作用區分,又應該將函數的定義放在.cpp/.cc文件中才對。如何是好呢?
如果明確可以增強可讀性,或者確認可以提高性能的話,是可以把內斂函數的定義直接放在頭文件中的,比如私有變量的Get/Set類方法。而對於比較複雜的內聯函數,雖然也可以放在.h頭文件中,但還是建議你把它單獨提出來放在後綴爲-inl.h的頭文件中,然後由.h頭文件來include進來,這樣使得代碼結構更清晰,也使得類定義和實現相分離。
其實-inl.h的使用方法,還可以用在函數模板的定義上,這樣會使你的模板定義更加清晰可讀。
最後提醒一句,不要忘記在-inl.h中仍然要使用#define防禦哦。
謝謝!
作者 rocrocket 於 5:47 下午