1. #if IS_ENABLED(CONFIG_XXX)
1.1 IS_ENABLED的定義如下:
/*
* IS_ENABLED(CONFIG_FOO) evaluates to 1 if CONFIG_FOO is set to 'y' or 'm',
* 0 otherwise.
*/
#define IS_ENABLED(option) __or(IS_BUILTIN(option), IS_MODULE(option))
1.2 從以上注釋來看,就是如果CONFIG_XXX被設置為'y'或'm'的時候,IS_ENABLED(CONFIG_XXX)就等於1
2. #ifdef CONFIG_XXX
表示只要定義了CONFIG_XXX就行,不論它定義成了什么東西,也就是無論定義的真假
3. 總結
#ifdef只關心宏是否被定義,而#if關心被定義的宏是否是真。