Книга: Разработка ядра Linux
Никаких директив ifdef в исходном коде
Никаких директив ifdef
в исходном коде
Использование директив препроцессора ifdef
в исходном коде категорически не рекомендуется. Никогда не следует делать чего-нибудь вроде следующего.
...
#ifdef CONFIG_FOO
foo();
#endif
...
Вместо этого, если макрос CONFIG_FOO
не определен, необходимо определять функцию foo()
, как ту, которая ничего не делает.
#ifdef CONFIG_FOO
static int foo(void)
{
/* ... */
}
#else
static inline int foo(void) { }
#endif
После этого можно вызывать функцию foo()
без всяких условий. Пусть компилятор поработает за вас.
Похожие страницы
- 7.13. Директива final
- 2. Пример создания базового отношения в записи на псевдокоде
- Не отображаются скрытые файлы. При установке переключателя в положение Показывать скрытые файлы и папки ничего не происх...
- 9.3.1. HTTP-директивы
- 9.3.2. FTP-директивы
- 10.3.4. Информационные директивы
- Нет изображения при воспроизведении видео или появляется сообщение об ошибке загрузки кодека
- 11.1. А кодеков-то нет!
- Директива parallel for
- Теперь посмотрим, как выглядит TITLE в исходном коде
- Никаких других правил нет
- Есть ли в коде волшебные числа[141]?