Как я могу использовать макросы в Delphi? Эта функция доступна в FPC
уже довольно давно. Можно ли это сделать с помощью событий до или после сборки?
Пример:
{$define sum:=a:=a+b;}
Как я могу использовать макросы в Delphi? Эта функция доступна в FPC
уже довольно давно. Можно ли это сделать с помощью событий до или после сборки?
Пример:
{$define sum:=a:=a+b;}
Вы не можете использовать макросы в Delphi. Такой функциональности не существует. Ближайшей встроенной функциональностью будет функция inline
.
Конечно, вы могли бы написать свой собственный препроцессор, расширяющий макросы. Однако вы не сможете хорошо интегрировать это с IDE. По крайней мере, не так, как я считаю приемлемым.
Проблема в том, куда расширить макрос. Вы вряд ли сможете расширить его до исходного файла, потому что вы не сможете реально его изменить. Поэтому вам нужно расширить временный файл. И у компилятора нет механизма сборки из временных файлов. Я полагаю, вы могли бы расшириться до включаемого файла. Это может быть лучшим вариантом, но с ним будет ужасно работать. Например, подумайте о развлечении при отладке.
inline
выглядит очень похоже на макрос в мире cpp
- person stanleyxu2005; 03.07.2014
Delphi не предоставляет встроенных функций для макросов. Возможно, вам нужен DWScript.
{$DEFINE}
в FreePascal более гибкий, чем в Delphi. FreePascal поддерживает определение целых выражений, которые можно подставлять в код во время компиляции, аналогично макросам препроцессора C. Прочтите Раздел 2.2 документации FreePascal. - person Remy Lebeau   schedule 03.07.2014{$Macro ON}
вFPC
- person user3764855   schedule 03.07.2014{$MACRO ON}
,{$DEFINE}
может определять выражения, а не только имена символов. Такие расширенные макросы НЕ предназначены для простых случаев и предназначены для общего программирования. Это то, что я не согласен с вашим предыдущим комментарием. - person Remy Lebeau   schedule 04.07.2014