2016-08-12 18 views
1

いくつかのチュートリアルがそこ#include以下のヘッダしかし Linuxカーネルモジュール - 冗長が含ま

#include <linux/kernel.h> 
#include <linux/init.h> 

は、モジュールはそれらなしでうまく動作することがあります。単なる linux/module.hが含まれています。 2つが必要ですか?

+2

多くの場合、ヘッダファイル間に依存関係があるので、 'module.h'には他のヘッダファイルが含まれています。しかし、あなたはそれに頼るべきではなく、すべての必要なヘッダーを含めるべきです。 – Barmar

+0

コンパイルせずにコンパイルすると、必要ではありませんでした。 – stark

答えて

1

starkと言われていますが、いくつかの特定のケースではおそらく不要です。いくつかのチュートリアルでそれを見つけたら、それはおそらくライターがヘッダーをコピー/ペーストしてしばらく時間を取るためだったでしょう。

#include <linux/init.h> 
#include <linux/kobject.h> 

kobject.h

#include <linux/kernel.h> 

彼らは増加のようないくつかのマイナスの影響を与える可能性があるのでしかし、未使用の#includeを削除する必要がありますmodule.hを見てみると

コンパイル時間とメモリ使用量。

Include what you useというツールは、人々が未使用の#includeを追跡するのに役立ちます。

関連する問題