条件编译在内核中的使用(技巧1)

 

当需要根据编译时配置,以不同方式执行某一任务时,一种可能的方法是,使用两个不同的函数,每次调用时,根据某些预处理器条件来的选择正确的一个:

void do_somehting()
{
…
#ifdef CONFIG_WORK_HARD
do_work_fast();
#else
do_work_at_your_leisure();
#endif
…
}


 

 由于这需要在每次调用函数时都使用预处理器,内核开发者认为这种方法代表了糟糕的风格,更优雅的一个方案是根据选择不同的配置,来定义函数自身:

#ifdef CONFIG_WORK_HARD
void do_work()
{
…
}
#else
void do_work()
{
…
}
#endif
void do_something()
{
…
do_work();
…
}

你可能感兴趣的:(条件编译在内核中的使用(技巧1))