![]() |
![]() ![]() ![]() ![]() ![]() |
![]() |
Поддержка препроцессорных символов и макросов в DelphiDelphi , Технологии , МакросыВ Delphi, как и в языках C и C++, можно определять символы, которые затем можно использовать в условной компиляции. Однако, в отличие от C и C++, в Delphi не поддерживается назначение значений препроцессорным символам. В Delphi можно определить символ с помощью директивы {$DEFINE}, например:
В C и C++ это делается с помощью директивы #define, например:
После определения символа, его можно проверить с помощью директивы {$IFDEF} в Delphi или #ifdef в C/C++.
Однако, в отличие от C и C++, в Delphi не поддерживается назначение значений препроцессорным символам. В C и C++ можно назначить значение символу с помощью #define, например:
В этом примере, если символ DEBUG определен, то DB_HOST будет равен "127.0.0.1", в противном случае он будет равен "123.456.789.123". В Delphi не существует подобного механизма назначения значений препроцессорным символам. Однако, в качестве альтернативы, можно использовать константы и условную компиляцию для достижения подобного результата. Например:
В этом примере, если символ DEBUG определен, то константа DB_Host будет равна '127.0.0.1', в противном случае она будет равна '123.45.67.89'. Также стоит отметить, что в Delphi не поддерживаются макросы препроцессора, как в C и C++. Однако, в качестве альтернативы, можно использовать функции, объявленные как inline, для достижения подобного результата. Например, в модуле Windows реализована функция RGB, которая является аналогом макроса RGB в WinAPI:
В данном примере, функция RGB является inline-функцией, что позволяет ей работать быстрее, чем обычная функция, так как не происходит вызова функции, а просто выполняется указанный код. В Delphi можно определять символы и использовать их в условной компиляции, подобно C и C++, но в отличие от них, в Delphi не поддерживается назначение значений препроцессорным символам. Комментарии и вопросыПолучайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 |