#macros #kernel #c-preprocessor #conditional-compilation #ifdefine
#макросы #ядро #c-препроцессор #условная компиляция
Вопрос:
Я только что начал работу по аудиту ядра Linux, и я не могу не заметить в исходном коде множество #defines и #ifdefs . Кажется, я не могу точно понять, как они используются. Я проверил Интернет, но описания, которые я нашел, кажутся ужасно расплывчатыми. Может ли кто-нибудь просветить меня относительно того, что именно #defines и тому подобное делают и почему они используются? Краткое объяснение — это все, что мне нужно сейчас.
Более того, люди много говорят о макросах в разных источниках, которые я просмотрел. Я абсолютно не понимаю, о чем они говорят, и снова, как и раньше, любое описание, которое я нашел в Интернете, было столь же загадочным. Может кто-нибудь, пожалуйста, объяснить мне макросы? Как они определены и почему они используются так часто (видимо, насколько я знаю) в ядре Linux.
Любая помощь будет высоко оценена.
Ответ №1:
Я углубился в свой предыдущий вопрос и обнаружил, что мне нужно заглянуть в препроцессор C для ответа. Лектор указал, что препроцессор расширяет макросы, и поэтому я последовал за ним. Вот ссылка для всех, кто еще интересуется значением макросов и т. Д. препроцессор c надеется, что это поможет какой-то другой потерянной душе 🙂