Как упоминалось во многих моих предыдущих вопросах, я работаю через K & R, и в настоящее время я препроцессор. Одна из наиболее интересных вещей - что-то, чего я никогда раньше не знал из-за моих предыдущих попыток узнать C — является оператором препроцессора ##. Согласно K & R:
Оператор препроцессора
##обеспечивает способ объединения фактических аргументы во время макрорасширения. Если параметр в заменяемом тексте рядом с a##, параметр заменяется фактическим аргументом,##и окружающее свободное пространство удаляется, и результат повторно сканируется. Например, макросpasteобъединяет два аргумента:
#define paste(front, back) front ## backпоэтому
paste(name, 1)создает токенname1.
Как и зачем кому-то использовать это в реальном мире? Каковы практические примеры его использования, и есть ли какие-то соображения?
