Переопределение макро-предупреждений в коде модуля ядра
Я делаю упражнения для начинающих. В нескольких источниках они определяют следующие макросы:
#define MODULE
#define LINUX
#define __KERNEL__
Но kbuild предупреждает:
warning: "MODULE" redefined [enabled by default]
...
warning: "__KERNEL__" redefined [enabled by default]
Итак, мои вопросы:
- Каковы эти определения в любом случае?
- Почему "переопределение" требует предупреждения? Просто потому, что в целом это означает, что предыдущее (желаемое) значение макроса было переопределено?
- Почему бы не поставить эти определения в
#ifndef
блоки?