Зачем разработчику использовать макрос? - PullRequest
0 голосов
/ 19 ноября 2009
  • Зачем разработчику использовать макрос ?
  • Каковы преимущества и недостатки их использования?
  • Где я могу найти некоторые ресурсы и как их использовать?

Ответы [ 11 ]

6 голосов
/ 19 ноября 2009

Макросы - это довольно широкий термин. Например, в C ++ есть такие макросы, как these . С точки зрения разработки программного обеспечения они позволяют использовать эти удобные макросы (например, __FILE__) для выполнения определенных задач, таких как получение имени текущего исходного файла и т. Д.

Есть также макросы нажатия клавиш, которые вы можете записать в редакторе. Например, если вы собираетесь редактировать каждую строку файла и заключать его в кавычки, вы можете записать серию нажатий клавиш, чтобы сделать это, а затем «сохранить» макрос на одну клавишу. Затем вы можете нажать ту клавишу, которая будет выполнять все нажатия клавиш, которые вы только что сохранили для каждой строки в файле.

6 голосов
/ 19 ноября 2009

Обычно макрос - это инструкция, которая расширяется на несколько инструкций. Сокращение, если хотите. Макросы существуют по тем же причинам, что и сокращения; это своего рода стенография.

3 голосов
/ 19 ноября 2009

Макросы существуют по многим причинам

  • , чтобы обеспечить удобную стенографию
  • для обеспечения косвенного указания, где определен тот или иной параметр, сохраняя необходимость изменять это значение в каждом месте, где есть ссылка на макрос
  • для обеспечения уровня абстракции (я думаю, что это немного не-макро-функция)
1 голос
/ 19 ноября 2009

Хорошее введение в макросы Lisp можно найти в Practical Common Lisp , главы 7 и 8.

1 голос
/ 19 ноября 2009

Преимущества:

сочетания клавиш Resharper , возможно, рассматриваются как макрос для некоторых, а в некоторых случаях могут быть полезны для сокращения количества нажатий клавиш для выполнения определенных действий. То же самое относится к использованию IntelliSense .

Недостатки:

Если разработчик становится почти зависимым от таких инструментов, что они не знают, как что-то сделать, если инструмент недоступен или если используется достаточно макросов, то он будет выглядеть почти как другой язык, как 80-90 % кода может быть просто макросами, которые я видел и использовал в предыдущих местах, включая пользовательский язык разметки для создания веб-страниц.

1 голос
/ 19 ноября 2009

Не определяя, что такое макрос, как большинство парней уже сделали, я просто перечислю некоторые плюсы / минусы (отнюдь не исчерпывающие)

Преимущества:
- Экономит время (назначение ярлыка)
- Эргономичный (субъективный - меньше набирать, но обычно нужно нажимать 2 или более клавиш за один раз)
- Делает фанатик чувствует себя фанатик

Недостатки:
- Может быть утомительно управлять, если слишком много макросов
- Возможный конфликт с существующим ярлыком приложения / системы и может вызвать путаницу
- Потенциальная опасность для кого-либо использовать тот же компьютер / приложение

1 голос
/ 19 ноября 2009

Макросы - это удобный код. Они часто подтверждаются опытом. Таким образом они экономят много времени.

1 голос
/ 19 ноября 2009

Макросы - это пакеты команд. Обычно они используются конечными пользователями для автоматизации повторяющихся задач.

Примеры макросов могут включать:

  • замена вхождений определенного текста в документе
  • применение одного и того же фильтра к группе изображений
  • загрузка набора веб-страниц
  • ...

Обычно макросы предназначены для непосредственного использования конечным пользователем (в отличие, например, от API, предназначенных для разработчиков).

1 голос
/ 19 ноября 2009

Макросы хороши для СУХОГО (не повторяйтесь), когда больше ничего не работает из-за языковых ограничений. Современные языки имеют тенденцию быть достаточно гибкими, поэтому макросы редко нужны. Например, возможность передавать функции в виде параметров, а обобщенные типы помогает сократить потребность в макросах.

Преимущества:

  • Общий код хранится в одном месте.
  • Оставшийся код менее загроможден и поэтому более читабелен.

Недостатки:

  • Часто трудно понять сообщения об ошибках, когда макрос вызывает синтаксическую ошибку во время компиляции.
  • Номера строк в трассировках стека, генерируемые во время выполнения, могут вводить в заблуждение.
  • Макрос иногда дает неожиданные результаты - MAX (x ++, y) может увеличить значение x в два раза.
0 голосов
/ 19 ноября 2009

Я использую макросы, когда встроенный код выполняется быстрее, чем вызов функции. Это редко имеет значение для меня сейчас, за исключением программирования DSP. Я все время использовал макросы на ассемблере и C.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...