Использование специальных директив
Использование специальных директив
Использование директивы компилятора $IFDEF является достаточно разумным путем для разделения кода Windows и Linux в вашем межплатформенном приложении. Тем не менее, использование директивы $IFDEF делает код приложения более трудным для понимания, поэтому старайтесь применять эту директиву как можно реже.
Пользуясь директивой $IFDEF, следуйте нижеприведенным указаниям:
- постарайтесь не применять директиву $IFDEF без крайней необходимости. Эта директива применяется в исходном файле только после компиляции;
- не используйте директиву $IFDEF в файлах пакетов (dpk). Создателям компонентов нужно разработать два пакета для каждой из платформ без использования директивы $IFDEF;
- применяйте директиву $IFDEF MSWINDOWS для проверки того, что приложение запущено в среде Windows. Используйте директиву $IFDEF WIN32 для определения различных Windows-платформ, например 32- и 64-битную версии Windows;
- используйте директиву $IFDEF LINUX для проверки того, что приложение запущено в среде Linux;
- избегайте в своих приложениях комбинации $IFNDEF/$ELSE. Пользуйтесь положительными тестами ($IFDEF/$ELSE) для лучшего понимания кода;
- старайтесь использовать директивы $IFDEF MSWINDOWS и $IFDEF LINUX вместо комбинаций $IFDEF LINUX/$ELSE или $IFDEF MSWINDOWS/$ELSE.
Приведем пример неосторожного обращения с директивой $IFDEFF (листинг 21.4).