Macros 理解Linux内核中的#定义#ifdef和宏

Macros 理解Linux内核中的#定义#ifdef和宏,macros,kernel,c-preprocessor,conditional-compilation,ifdefine,Macros,Kernel,C Preprocessor,Conditional Compilation,Ifdefine,我刚刚开始审核Linux内核,我忍不住注意到源代码中有大量的#定义和#ifdef。我似乎不能确切地理解这些是如何被使用的。我在网上查过了,但我发现的描述似乎非常模糊。有谁能告诉我#定义和类似定义的确切含义以及使用它们的原因吗?我现在只需要一个简短的解释 此外,人们在我看过的不同来源上谈论宏很多。我完全不知道他们在说什么,我在网上找到的任何描述都同样神秘。有人能给我解释一下宏吗?它们是如何定义的,以及为什么它们在Linux内核中如此频繁地使用(据我所知) 任何帮助都将不胜感激。我进一步研究了我之前

我刚刚开始审核Linux内核,我忍不住注意到源代码中有大量的#定义和#ifdef。我似乎不能确切地理解这些是如何被使用的。我在网上查过了,但我发现的描述似乎非常模糊。有谁能告诉我#定义和类似定义的确切含义以及使用它们的原因吗?我现在只需要一个简短的解释

此外,人们在我看过的不同来源上谈论宏很多。我完全不知道他们在说什么,我在网上找到的任何描述都同样神秘。有人能给我解释一下宏吗?它们是如何定义的,以及为什么它们在Linux内核中如此频繁地使用(据我所知)


任何帮助都将不胜感激。

我进一步研究了我之前的问题,发现我需要研究C预处理器以获得答案。一位讲师发现预处理器会扩展宏,所以我跟进了这一点。这是一个链接,供其他对宏等背后的含义感兴趣的人使用。 希望它能帮助其他迷失的灵魂:)