3

我正在学习初学者的内核模块练习。在几个来源中,他们定义了以下宏:

#define MODULE
#define LINUX
#define __KERNEL__

但是 kbuild 警告:

warning: "MODULE" redefined [enabled by default]
...
warning: "__KERNEL__" redefined [enabled by default]

所以我的问题是:

  1. 无论如何,这些定义是什么?
  2. 为什么“重新定义”需要警告?仅仅是因为通常它暗示宏的先前(期望)值已被覆盖?
  3. 为什么不把这些定义放在#ifndef块中呢?
4

0 回答 0