Я хочу создать макрос C, который создает функцию с именем на основе на номер строки. Я думал, что смогу сделать что-то вроде (у реальной функции будут выражения в фигурных скобках):
#define UNIQUE static void Unique_##__LINE__(void) {}
Я надеялся, что это расширится до чего-то вроде:
static void Unique_23(void) {}
Это не работает. При объединении маркеров макросы позиционирования обрабатываются буквально, заканчиваясь расширением до:
static void Unique___LINE__(void) {}
Можно ли это сделать?
(Да, есть реальная причина, по которой я хочу это сделать, независимо от того, насколько это бесполезно).