Форум программистов, компьютерный форум, киберфорум
Turbo Pascal
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.74/34: Рейтинг темы: голосов - 34, средняя оценка - 4.74
Мат в 32 хода
237 / 172 / 18
Регистрация: 10.09.2009
Сообщений: 1,096
1

Что такое директива, где она используется, и какая от неё польза?

14.12.2009, 20:13. Показов 7025. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Что такое директива, где она используется, и какая от неё польза?
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.12.2009, 20:13
Ответы с готовыми решениями:

Хотелось бы узнать что это за программа LabView. Где и для чего она используется. И перспективна ли она то есть стоит ли ее изучать?
Не ругайте если не в том разделе создал тему. Вообщем вопрос такой. Хотелось бы узнать что это за...

Что такое и где используется stdClass?
Что такое и где используется stdClass?

Что такое Анонимная Функция, где используется?
Здравствуйте. Расскажите, пожалуйста, что такое анонимная функция, для чего она нужна, и как она...

Что такое md5? Для чего это нужно? Где используется?
Всем доброго времени суток! Что такое md5? Для чего это нужно? Где используется? Спасибо!

1
Retired
7727 / 2559 / 671
Регистрация: 17.10.2009
Сообщений: 5,100
15.12.2009, 03:12 2
Лучший ответ Сообщение было отмечено nikkka как решение

Решение

Да видимо с гуглом Вы не в ладах совсем... Почитайте вот это Вам будет полезно
Ключи и директивы компилятора

Позволяют управлять процессами компиляции программы. Директива представляет собой комментарий со специальным синтаксисом: начинается с {$, далее пишется имя директивы (одна или несколько букв) и параметры.

Турбо-Паскаль 7.0 допускает применение директив в любом месте программы, где допускается применение комментариев.

В Турбо-Паскале 7.0 существует три основных вида директив:
  • Директивы - переключатели. С их помощью, указывая символ (+) или (-), можно разрешать или запрещать тот или иной режим.
  • Директивы с параметрами. Позволяют задавать компилятору параметры, такие как имена подключаемых файлов, размеры памяти, выделяемые под определённую задачу, и так далее.
  • Условные директивы. Позволяют организовывать так называемую "условную компиляцию" частей исходного текста, благодаря чему скомпоновать программу определённым образом.
Все директивы, кроме директив-переключателей, должны иметь по крайней мере один пробел между именем директивы и параметром.

Чтобы не прописывать директивы компилятора в тексте программы можно воспользоваться пунктом "Options" меню ИПО и далее подпунктом "Compiler". Но при этом все изменения будут иметь силу при всех последующих компиляциях других программ. Однако, если указать в исходном тексте какие-либо директивы, противоречащие установленным в ИПО, то последние будут проигнорированы. Это справедливо как для командно-строчного компилятора, так и для встроенного в ИПО.

1. Директивы-переключатели
Различаются по диапазону своего действия на глобальные и локальные:
Глобальные - влияют на ход компиляции и выполнение всей программы,
Локальные - только на определённую часть программы.

Глобальные директивы могут быть объявлены в разделе объявлений и соглашений прежде, чем будет использовано хотя бы одно из следующих зарезервированных слов: Uses, Label, Const, Type, Procedure, Function, Begin, а Локальные директивы могут быть объявлены в любом месте программы или программного модуля.

При необходимости можно сгруппировать комментарии из нескольких директив, разделённых запятой: {$A+, B-}.
Примечание: двойное нажатие комбинации Ctrl+O заставит редактор поместить в самое начало файла строки, содержащие текущую настройку среды в виде директив компилятора.

Директивы:
Выравнивание данных - (Word Align Data)
{$A+}
Тип глобальный. Делает возможным переключение между выравниванием на границу слова или байта. (Для 8086 выравнивание на границу слова игнорируется, однако для 80X86 выравнивание на границу слова означает более быстрое выполнение, поскольку адресация по всем элементам, имеющим размер в слово (чётная адресация) происходит за один цикл вместо двух. {$A+} не влияет:
1. на переменные размером в байт,
2. на поля структур или элементы массивов.

Булевы вычисления (Complete Boolean Evaluation)
{$B+}
Тип локальный Может быть осуществлено два различных вида генерации кода для And и Or .При {$B-} генерируется код вычисления выражения, по короткой схеме (вычисления прекращаются сразу, как станет очевидным результат вычисления всего выражения).

Пример:
Pascal
1
2
3
4
5
6
7
8
9
10
Function Fun(X: Integer): Boolean;
Begin
  X:= X + 1;
  Fun:= X > 10;
End;
. . . . . . . . . . .
Begin
  X:= 0;
  If False And Fun(X) Then
    X:= 10;
Информация для отладки (Debug Information)
{$D+}
Тип глобальный. Составляется таблица для отладчика, состоящая из N-строк для каждой процедуры, устанавливающая соответствующие адреса объектных кодов номерам строк исходного текста.
Отладочная информация приводит к увеличению размера файла .TPU и требует дополнительного пространства при компиляции использующей модуль программы, но на размер и скорость не влияет.
{$D} не будет работать в Турбо-Паскале 7.0 до тех пор пока не установить в меню или не задать параметр /V при запуске TPC.EXE.

Эмуляция сопроцессора. (Emulation).
{$E+}
Тип глобальный. В процессе генерации кода нет библиотеки, реализующей функции сопроцессора программы.

Дальний тип вызова (Force Far Calls).
{$F-}
Тип локальный, (Far) или (Near).

Генерация кода для 80286 (286 Instruction).
{$G-}
Тип локальный. При {$G-} генерируются инструкции 8086, такие программы могут работать на любой машине. Если {$G+}, то будут использоваться дополнительные инструкции 80286, которые позволяют генерировать более эффективный код, но не работают на 8086 и 8087. (Например команды Shr и Shl - расширенные).

Проверка ошибок ввода-вывода (I/O checking).
{$I+}
Тип локальный. Если {$I-}, то результат ввода-вывода может быть проанализирован с помощью функции IOResult.

Информация о локальных идентификаторах. (Local Symbols)
{$L+}
Тип глобальный. Используется в основном для модулей, дает возможность проверить и модифицировать локальные переменные модуля. Увеличивает размер .TPU, на размер и скорость работы выполняемой программы не влияет. В Турбо-Паскале 7.0 директива не будет работать до тех пор, пока в меню не будет Debuginfo или для TPC.EXE ключ /V.

Использование математического сопроцессора (8087/80287).
{$N-}
Тип глобальный. Позволяет осуществлять выбор генерируемых кодов для вычислений с плавающей запятой при “-“ реализуется программно, при ”+” - код для сопроцессора.
Примечание: если отсутствует сопроцессор и возникла необходимость в использовании специальных вещественных типов, нужно использовать {$E+}.

Использование оверлейных структур. (Overlays allowed).
{$O-}
Тип глобальный. Разрешает или запрещает генерацию оверлейного кода, то есть Турбо-Паскаль 7.0 может использовать модуль в качестве оверлейного, если он был скомпилирован с {$O+}. Задание данного режима компиляции не обязывает использовать данный модуль в качестве оверлейного. Директиву {$O+} почти всегда используют с {$F+}.

Использование в качестве параметров массивов открытого типа (Open parameters).
{$P-}
Тип глобальный.

Проверка переполнения при математических операциях (Overflow checking).
{$Q-}
Тип глобальный.

Проверка границ. (Range-Checking).
{$R-}
Тип локальный. Рекомендуется использовать R+ при отладке, а затем отключать так как “+” увеличивает размер и замедляет работу программ. R+ осуществляет так же проверку виртуальных методов на состояние инициализации для экземпляра объекта, выполняющего вызов.

Проверка переполнения стека (Stack Checking)
{$S+}
Тип локальный. При “+” компилятор генерирует вначале каждой процедуры или функции код, который проверяет, достаточно ли в стеке выделено места для локальных переменных.

Использование типизированного адресного оператора @ (Typed @ operator).
{$T-}
Тип глобальный. Позволяет или запрещает использовать в тексте оператор @.

Проверка параметров переменных строкового типа (Strict Var String).
{$V+}
Тип локальный. Управляет проверкой типа при передачи строк в качестве параметров-переменных. В состоянии “+” выполняется строгая проверка типа. Требуется, чтобы формальный и фактический параметр имели идентичные строковые типы; при “-” длины могут не совпадать.

Расширенный синтаксис. (Extended Syntax).
{$X-}
Тип глобальный. При X+ вызов функции можно использовать как оператор, то есть результат функции может быть отброшен (функция может быть интерпретирована как процедура).

2. Директивы с параметрами

Включение файла для компиляции (Include Directories).
{$I < имя файла >}
Тип локальный. Сообщает компилятору о необходимости включить в компиляцию названный файл. Текст файла вставляется сразу за директивой. Расширение по умолчанию .PAS. Турбо-Паскаль допускает одновременно не более 15 входных файлов. Значит допускается вложенность до 15-ти уровней. Так же включаемый файл не может указываться в середине раздела операторов. Это означает, что все операторы между Begin и End раздела операторов должны быть в одном файле.

Компоновка объектного файла. (Object Directories).
{$L < Имя-файла >}
Тип локальный. Предписывает компилятору использовать указанный файл (.Obj) при компоновке компилируемой программы или модуля.
Директива {$L} используется для компоновки кода Ассемблера для подпрограмм, описанных External.

Размеры выделяемой памяти (Memory Sizes).
{$M < размер стека >, < размер динамической области >}.
Тип глобальный. Размер-стека - целое число от 1024 до 65520. Для модуля размер- стека игнорируется (модуль использует стек основной программы). Размер динамической области - целое число от 0 до 65360. Директива {$M} при использовании в Unit не оказывает влияния на компиляцию.

Компоновка оверлейного модуля.
{$O < Имя модуля >}
Тип локальный. Можно преобразовать обычный модуль в оверлейный. Игнорируется при попытке объявить её в теле какого-либо модуля. Директива должна указываться в тексте программы после слова Uses. Любой модуль, который указывается в качестве параметра, должен быть откомпилирован с директивами {$O+} и {$F+}.

3. Условные директивы

Установить условие (Conditional Defines).
{$ Define < условие >}
Определяет условия, которые можно использовать в операторах условной компиляции.
Установить условие - значит с помощью данной директивы ввести некоторое слово, которое затем будет управлять компиляцией какого- либо фрагмента программы. За условием не должно следовать ничего кроме }.

Пример:
Pascal
1
2
3
4
5
{$Define Debug}
. . . . . . . . . . . . . .
{$Ifdef Debug}
Writeln(‘Отладка’);
{$Endif}
Можно ввести несколько условий одновременно, причём условия должны отделяться друг от друга точкой с запятой (в меню).
Допускается использование развёрнутой формы операторов условной компиляции.

Пример:
Pascal
1
2
3
4
5
6
{$Ifdef Demo}
  Code:= 1;
{$Else}
  Code:= 2;
  A:= ”Yes”;
{$EndIf}.
Операторы условной компиляции могут быть вложенными, что позволяет контролировать несколько условий одновременно.

Пример:
Pascal
1
2
3
4
5
6
7
{$Ifdef Var1}
{$Ifdef Var2}
A: = N;
{$Else}
A: = 0;
{$Endif}
{$Endif}
.
2
15.12.2009, 03:12
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.12.2009, 03:12
Помогаю со студенческими работами здесь

Что такое GetSubStr и где она применяется
что такое GetSubStr? и куда эту функцию ставят? на кнопку или Edit? Давайте сейчас этим и...

Напишите простенько что такое фабрика и где она нужна
Привет, друзья! Напишите, пожалуйста, простенько, поверхностно, зачем нужна фабрика класса? ...

При нажатии на форму она зависает, и требуется просто убрать фокус с неё что бы она отвисла
При нажатии на форму она зависает, и требуется просто убрать фокус с неё что бы она отвисла. не...

Какая нужна команда ячейке В1 что-бы "брать" цифру или из А1 или из А2 в зависимости от того где она появится
Приветствую всех! Помогите, пожалуйста, чайнику в эксел. Пример - результат определенного...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru