Я хотел бы получить препроцессор C для генерации макросов для меня (т.е. я использую только C99). Я бы написал макрос
#define make_macro(in) <...magic here...>
и когда я ставлю
make_macro(name1)
make_macro(name2)
позже в коде он расширится до
#define name1(...) name1_fn(name1_info, __VA_ARGS__)
#define name2(...) name2_fn(name2_info, __VA_ARGS__)
и тогда я смогу использовать name1 и name2 как (реализованные на макросе) функции. Я думаю, что застрял с использованием макросов на обоих этапах: имеет смысл использовать макрос для многократного повторного заполнения шаблона, и обработка переменных аргументов не будет работать, кроме как через макрос.
Так что же входит в заполнитель <... magic here ...> для этого? На этом этапе я начинаю верить, что это невозможно в C99, но, возможно, мне не хватает некоторых деталей синтаксиса.