TURBO PASCAL |
Новости
|
Параметры компилятора и компоновщикаIDE позволяет вам выбрать несколько параметров, влияющих на характер компиляции кода. Для вывода диалогового окна параметров компилятора Compiler Options выберите команду Options│Compiler. Если вы не уверены относительно того, что делает конкретный пара- метр, выберите его в диалоговом окне, в строке состояния появится поясняющая справка. Для вывода более подробной информации о дан- ном параметре нажмите клавишу F1 или выберите команду Help для получения справочной информации обо всем диалоговом окне Compiler Options. ╔═[ ]══════════════════════Compiler Options═════════════════════╗ ║ Compiler settings for: ▒▒Real mode target▒▒▒▒▒▒▒▒▒▒v▒║ ║───────────────────────────────────────────────────────────────║ ║ Code generation ║ ║ ▒[▒]▒Force▒far▒calls▒▒▒▒▒▒▒▒▒[▒]▒286▒instructions▒▒▒▒▒▒▒▒▒ ║ ║ ▒[▒]▒Overlays▒allowed▒▒▒▒▒▒▒▒[▒]▒Smart▒callbacks▒▒▒▒▒▒▒▒▒▒ ║ ║ ▒[X]▒Word▒align▒data▒▒▒▒▒▒▒▒▒[▒]▒Windows▒stack▒frames▒▒▒▒▒ ║ ║ Runtime errors Syntax Options ║ ║ ▒[▒]▒Range▒checking▒▒▒▒▒ ▒[X]▒Strict▒var-strings▒▒▒▒▒▒▒ ║ ║ ▒[X]▒Stack▒checking▒▒▒▒▒ ▒[▒]▒Complete▒boolean▒eval▒▒▒▒ ║ ║ ▒[X]▒I/O▒checking▒▒▒▒▒▒▒ ▒[X]▒Extended▒syntax▒▒▒▒▒▒▒▒▒▒ ║ ║ ▒[ ]▒Overflow▒checking▒▒ ▒[▒]▒Typed▒@▒operator▒▒▒▒▒▒▒▒▒ ║ ║ Debugging ▒[▒]▒Open▒parameters▒▒▒▒▒▒▒▒▒▒ ║ ║ ▒[X]▒Debug▒Information▒▒ Numeric processing ║ ║ ▒[X]▒Local▒symbols▒▒▒▒▒▒ ▒[▒]▒8087/80287▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ ║ ║ ▒[X]▒Symbol▒information▒ ▒[X]▒Emulation▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ ║ ║ ║ ║ Conditional defines ║ ║ ██████████████████████████████████████████████████████████v█ ║ ║ ║ ║ █████OK████ ███Cancel███ ███Help████ ║ ║ ▒▒▒▒▒▒▒▒▒▒▒ ▒▒▒▒▒▒▒▒▒▒▒▒ ▒▒▒▒▒▒▒▒▒▒▒ ║ ║ ║ ╚═══════════════════════════════════════════════════════════════╝ Рис. 4.3 Диалоговое окно Compiler Options. Compiler settings for - установки компилятора для; Real mode target - целевая платформа реального режима; Code generation - генерация кода; Force far calls - принудительное использование вызовов дальнего типа; 286 instructions - инструкции процессора 286; Overlays allowed - допустимость оверлеев; Smart callbacks - эффективные вызовы; Word align data - выравнивание данных на гра- ницу слова; Windows stack frames кадры стека Windows; Runtime errors - ошибки этапа выполнения; Syntax Options - синтаксические ошибки; Range checking - проверка диапазона; Strict var-strings - строгая проверка строковых переменных; Stack checking - проверка стека; Complete boolean eval - полное вычисление булевских выра- жений; I/O checking - проверка ввода-вывода; Extended syntax - расширенный синтаксис; Overflow checking - проверка переполнения стека; Typed @ operator - типизованная операция @; Debugging - отладка; Open parameters - открытые параметры; Debug Information - отладочная информация; Numeric processing - числовая обработка; Local symbols - локальные идентификаторы; 8087/80287 - процессоры 8087/80287; Symbol information - локальная информация; Emulation - эмуляция; Conditional defines - условные определения. Задание параметров компилятора для целевой платформы Выбираемые вами параметры компилятора в сильной степени за- висят от того, какую целевую платформу вы используете. Например, если вы создаете приложение DOS реального режима, то можете раз- решить использование оверлеев, что не требуется для программ Windows или защищенного режима DOS. Для указанной целевой платформы вы можете установить стан- дартные параметры компилятора: Примечание: Меню Compiler Options компилятора TURBO.EXE не имеет параметра Compiler Setting For. 1. Для вывода прокручиваемого списка щелкните "мышью" на стрелке v или нажмите клавишу стрелки вниз при выборе блока списка Compiler Setting For. 2. Проверьте выбранную целевую платформу. IDE автоматически устанавливает обычно используемые парамет- ры. В любой момент вы можете переопределить эти выбранные в IDE параметры. Если параметр компилятора несовместим с выбранной целевой платформой, то он становится тусклым, и вы не можете его выби- рать. Установка параметров компилятора для всех целевых платформ Если вы хотите чтобы конкретный параметр компилятора был ус- тановлен независимо от используемой целевой платформы, сделайте следующее: 1. В качестве значения параметра Compiler Settings For выбе- рите All Targets. 2. Установите или отмените параметр компилятора, который вы хотите установить. Например, если вы хотите использовать инструкции процессора 286 для всех платформ, выберите All Targets (Все платформы), за- тем установите параметр 286 instructions. Когда вы выбираете All Targets, то можете увидеть, что в не- которых кнопках с независимой фиксацией выводится вопросительный знак (?). Это указывает, то установка параметра для всех платформ не является одинаковой. Вы можете изменить этот параметр, сделав его одинаковым для всех платформ, или оставить как есть. Задание параметров компоновщика Характер компоновки вашего кода зависит от установок в диа- логовом окне Linker Options (Параметры компоновщика). Для его вы- вода выберите команду Options│Linker. Если нужна более детальная информация, выберите Help. Включение в код директив компилятора Существует еще один способ задания режима компиляции исход- ного кода. Вместо использования для установки параметров диалого- вых окон вы можете включить в свой код директивы компилятора. Например, вы можете включить в свою программу проверку диапазона, установив в диалоговом окне Options│Compiler параметр Range Checking, или поместить в исходный код директиву {$R+}. Полное описание директив компилятора и их использования вы можете найти в Главе 2 ("Директивы компилятора") "Справочного руководства программиста". Включаемые в исходный код директивы компилятора имеют боль- ший приоритет, чем параметры компилятора, устанавливаемые в IDE. Например, если в IDE вы установите параметр Range Checking, но ваша программа включает в себя директиву {R-}, то программа ком- пилируется с выключенной проверкой диапазона. Оптимизация кода Некоторые параметры компилятора, поскольку они включают в программу код проверки и обработки ошибок, влияют как на размер, так и на скорость вашего кода. Хотя такие параметры полезно ис- пользовать при разработке программы, без них вы можете получить более быстрый и компактный код. Приведем параметры, влияющие на оптимизацию кода. Каждая ди- ректива компилятора сопровождается указанием соответствующего па- раметра компилятора. Рассмотрим использование для завершающей компиляции следующих параметров: * Выравнивание данных на границу слова 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). * Когда выключена проверка диапазона Stack Checking ({$R-}), компилятор не выполняет проверку на ошибки индексирования массива и присваивание значения вне диапазона. * При выключенной проверке стека Stack Checking ({$S-}) ком- пилятор не обеспечивает достаточного пространства в стеке для каждого вызова процедуры или функции. * Когда включена нестрогая проверка строк-переменных Relaxed String Var Checking ($V-}), компилятор не проверяет пара- метры-переменные строкового типа. Это позволяет вам пере- давать строки фактических параметров, имеющие длину, от- личную от длины, определенной для формального парамет- ра-переменной. * При разрешении расширенного синтаксиса Extended Syntax ({$X+}) вы можете использовать вызовы функций как операто- ры, поскольку результат функциональных вызовов может отб- расываться. Оптимизация вашего кода с помощью этих параметров имеет два преимущества. Во-первых, это делает ваш код более компактным и быстрым. Во-вторых, позволяет делать вам некоторые вещи, которые вы обычно делать не можете. Однако, все эти параметры вносят не- который риск, поэтому используйте их аккуратно, и если ваша прог- рамма начинает вести себя странно, вернитесь к исходной ситуации. |
(с)Все права защищены По всем интересующим вопросам прошу писать на электронный адрес |