Разработчик DrC расширил C Preprocessor встроенными __map(), __print() и __where()

Fun Extending the C Preprocessor

Автор компилятора DrC для C2Y рассказывает, как добавил в свой C Preprocessor встроенные макросы, избавляющие от тёмной магии. __print() и __where() упрощают отладку раскрытия макросов, __map() применяет макрос к каждому аргументу за один линейный проход без имитации рекурсии, а __VA_COUNT__ сразу даёт число вариативных аргументов вместо ручного NARG. По его словам, расширения делают препроцессор мощнее и читаемее.

C Preprocessor — мощный инструмент, но чтобы по-настоящему им воспользоваться, нужна нечитаемая тёмная магия. Это не является неотъемлемым свойством того, что вы хотите с ним делать — это лишь следствие его недоразвитого механизма.

Ещё за этот день

2026-10-18