Никаких директив 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() без всяких условий. Пусть компилятор поработает за вас.
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
Блокировки в вашем коде
Блокировки в вашем коде Обеспечение безопасности кода при SMP-обработке — это не то, что можно откладывать на потом. Правильная синхронизация, блокировки без тупиковых ситуаций, масштабируемость и ясность кода- все это следует учитывать при разработке с самого начала и до
11.7.2. Изменения в коде
11.7.2. Изменения в коде Как только в parseCommand() будут правильно отражены структуры данных, то запуск команд в правильном порядке становится довольно простым при достаточном внимании к деталям. Прежде всего, мы добавляем цикл в parseCommand() для запуска дочерних процессов,
(7.19) Как завести под W2k старый CD рекордер? Например, CD-recorder Yamaha CDR-100 (SCSI) определяется, но никаких драйверов на него не ставится.
(7.19) Как завести под W2k старый CD рекордер? Например, CD-recorder Yamaha CDR-100 (SCSI) определяется, но никаких драйверов на него не ставится. Для этого достаточно выбрать драйвер вручную, из списка. Вполне подойдёт стандартный драйвер CD-ROM. Привод будет виден в Explorer, и записывающий CD-R софт
(8.3) Постоянно занято 30-50% системных ресурсов, даже когда никаких программ не запущенно.
(8.3) Постоянно занято 30-50% системных ресурсов, даже когда никаких программ не запущенно. Это связанно с некорректной поддержкой режима ACPI Вашей материнской платой. Лечится это, обычно, обновлением BIOS, но, иногда, можно столкнуться с ситуацией, когда эта проблема
1.12. Никаких итогов
1.12. Никаких итогов Вот мы и подошли к завершению обзора поисковых возможностей Яндекса. Вчерашних возможностей, потому что за то время, что писались эти строки возможности поиска уже расширились. Поэтому, если вы не найдете здесь ответов на ваши вопросы, — обращайтесь к
Приложение A. Краткое описание директив PSpice
Приложение A. Краткое описание директив PSpice В данном разделе директивы приведены в краткой форме. Этот список будет полезен, если вам необходимо найти команду, которую вы уже видели или использовали. Более подробная информация приведена в приложениях В и D и в конце каждой
18. Применение директив
18. Применение директив Рассмотрим пример:#define WIDTH 80#define LENGTH (WIDTH+10)Данные директивы заменят в тексте программы каж дое слово WIDTH на число 80 и любое слово LENGTH н выражение (80+10) вместе с окружающими его скобкамиСкобки, которые содержатся в макроопределении дают возможность
Закладки в программном коде
Закладки в программном коде Предположим, сейчас 3 часа ночи. Ваши глаза слипаются, и вас клонит ко сну, но сроки нещадно поджимают, и вы упорно отбиваете на клавиатуре строку за строкой довольно однообразный программный код. Вдруг - прилив вдохновения - вы понимаете, как
Роль директив CIL
Роль директив CIL Прежде всего, есть множество известных лексем CIL, которые используются для описания полной структуры компоновочного блока .NET. Эти лексемы называются директивами. Директивы CIL используются дли информирования компилятора CIL о том, как определять
Роль меток в программном коде CIL
Роль меток в программном коде CIL Вы. конечно, заметили, что в каждой строке программного кода реализации содержится префикс в форме лексемы IL_XXX: (например, IL_0000: IL_0001: и т.д.). Эти лексемы называются метками кода, и они могут иметь любой вид, какой вы только пожелаете (лишь бы
ДИРЕКТИВЫ ПРЕПРОЦЕССОРА #define, #include, #undef, #if, #ifdef, #ifndef, #else, #endif
ДИРЕКТИВЫ ПРЕПРОЦЕССОРА #define, #include, #undef, #if, #ifdef, #ifndef, #else, #endif Язык Си был разработан в помощь работающим программистам, а им нравится его препроцессор. Этот полезный помощник просматривает программу до компилятора (отсюда и термин "препроцессор") и заменяет
ДРУГИЕ ДИРЕКТИВЫ: #undef, #if, #ifdef, #ifndef, #else И #endif
ДРУГИЕ ДИРЕКТИВЫ: #undef, #if, #ifdef, #ifndef, #else И #endif Эти директивы обычно используются при программировании больших модулей. Они позволяют приостановить действие более ранних определений и создать файлы, каждый из которых можно компилировать по-разному. Директива #undef
Что это за странные конструкции $ifdef в коде?
Что это за странные конструкции $ifdef в коде? Все коды примеров, представленных в книге, за несколькими специальным образом помеченными исключениями, будут компилироваться в средах Delphi1, 2, 3, 4, 5 и 6, а также Kylix 1. (Впрочем, должны поддерживаться и будущие версии компиляторов.
Директивы #ifdef и #ifndef
Директивы #ifdef и #ifndef Синтаксис:#ifdef <идентификатор>#ifndef <идентификатор>Аналогично директиве #if, за директивами #ifdef и #ifndef может следовать набор директив #elif и директива #else. Набор должен быть завершен директивой #endif.Использование директив #ifdef и #ifndef эквивалентно
17.1. Никаких «красных глаз»!
17.1. Никаких «красных глаз»! В Photoshop есть замечательный инструмент Red Eye (Красный глаз). C его помощью можно без труда удалять пресловутый эффект «красных глаз», который так часто портит многие удачные снимки. Работа с этим инструментом настолько проста, что не должна вызвать