Книга: Разработка ядра 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() без всяких условий. Пусть компилятор поработает за вас.

Оглавление книги


Генерация: 1.586. Запросов К БД/Cache: 3 / 0
поделиться
Вверх Вниз