Большие C макросы. В чем выгода? - PullRequest
5 голосов
/ 13 июля 2009

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

Некоторые макросы настолько сложны, что мне трудно представить, что кто-то их даже пишет. Я пытался создать один в этом духе, и это был кошмар. Отладка чрезвычайно трудна, так как она занимает N + строк кода в 1 в отладчике (например, где-то в этом большом блоке кода произошла ошибка). Удачи!). Я должен был на самом деле вытащить макрос и запустить его без макроса для его отладки. Единственный способ, которым я мог видеть человека, написавшего это, - это автоматически генерировать его из кода, написанного в функции, после того, как он отладил ее (или быть умнее меня и писать это с первого раза, что, я думаю, всегда возможно) .

Я что-то упустил? Я сумасшедший? Есть ли уловки отладки, о которых я не знаю? Пожалуйста, заполните меня. Я действительно хотел бы услышать от макро-любителей в аудитории. :)

Ответы [ 11 ]

0 голосов
/ 13 июля 2009

Я вообще не использую макросы. Встроенные функции служат каждой полезной цели, которую может сделать макрос. Макрос позволяет делать очень странные и нелогичные вещи, такие как разделение идентификаторов (как тогда кто-то ищет идентификатор?).

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