簡體   English   中英

Linux設備驅動程序中的內聯函數

[英]Inline functions in Linux device driver

我正在寫一個設備驅動程序。 我有一個問題要問:

在.c文件中聲明內聯函數是否正確?

我說的是關於linux內核的設備驅動程序。 我有一個函數,它在函數體方面非常短,並且從一個模塊導出到另一個模塊。 您是否認為,我可以將其聲明為.c文件中的內聯,或者我需要將此函數聲明與EXPORT_SYMBOL行一起移動到.h文件中,因為它是內聯的? 什么是標准的Linux內核實踐?

For ex -> something like this?
inline void hello_world( )
{............
return;
}
EXPORT_SYMBOL(hello_world);

謝謝!

只要您不將函數聲明為static函數,非內聯版本將包含在已編譯的代碼中,即使它是inline聲明的,也可以使其他編譯單元的代碼能夠調用該函數。

顯然,除非啟用整個程序優化/鏈接時優化,否則在從編譯單元外部調用時不會對函數調用進行任何優化。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM