Некоторые параметры компилятора, поскольку они включают в программу код проверки и обработки ошибок, влияют как на размер, так и на скорость вашего кода. Хотя такие параметры полезно ис- пользовать при разработке программы, без них вы можете получить более быстрый и компактный код.
Приведем параметры, влияющие на оптимизацию кода. Каждая ди- ректива компилятора сопровождается указанием соответствующего па- раметра компилятора. Рассмотрим использование для завершающей компиляции следующих параметров:
* Выравнивание данных на границу слова Word Align Data ({$A+}) выравнивает переменные и типизированные константы на границу слова, что дает в системах с процессорами 80x86 более быстрый доступ к памяти.
* Выключение полного вычисления булевских выражений Complete Boolean Evaluation ({$B-}) дает код, который в зависимости от установки ваших булевских выражений более быстро рабо- тает.
* При выключенной эмуляции Emulation ({$E-}) компилятор не будет выполнять компоновку с библиотекой исполняющей сис- темы, эмулирующей сопроцессор 80x87. Она должна использо- вать сопроцессор 80х87 (в случае его наличия) или стан- дартный 6-байтовый тип Real. При компиляции приложений Windows эмуляция не используется; при наличии директивы эмуляции компилятор ее игнорирует.
* Когда задана генерация кода процессора 80286 Code Generation ({$G+}), компилятор для улучшения генерации ко- да использует дополнительные инструкции процессора 80286. Скомпилированные таким образом программы не будут работать на процессорах 8088 и 8086.
* При выключенной проверке ввода-вывода I/O Checking ({$I-}) компилятор не проверяет ошибки ввода-вывода. Вызвав пре- допределенную функцию IOResult, вы можете самостоятельно проверить ошибки ввода-вывода.
* Когда выключена числовая обработка Numeric Processing ({$N-}), компилятор генерирует код, способный выполнять все операции с плавающей точкой с помощью встроенного 6-байтового типа Real. Если параметр Numeric Processing включен, ({$N+}), компилятор использует сопроцессор 80х87 или эмулирует сопроцессор с помощью программного обеспе- чения, в зависимости от наличия сопроцессора 80х87. Полу- ченный в результате код может использовать четыре дополни- тельных вещественных типа (Single, Double, Extended и Comp).