我正在学习初学者的内核模块练习。在几个来源中,他们定义了以下宏:
#define MODULE
#define LINUX
#define __KERNEL__
但是 kbuild 警告:
warning: "MODULE" redefined [enabled by default]
...
warning: "__KERNEL__" redefined [enabled by default]
所以我的问题是:
- 无论如何,这些定义是什么?
- 为什么“重新定义”需要警告?仅仅是因为通常它暗示宏的先前(期望)值已被覆盖?
- 为什么不把这些定义放在
#ifndef
块中呢?