В C можно ли объединить каждый из переменных аргументов в переменном макросе?Конкатенация маркеров в вариативных макросах
Пример:
MY_MACRO(A, B, C) will yield HDR_A, HDR_B, HDR_C
MY_MACRO(X, Y) will yield HDR_X, HDR_Y
Нормальный ##
оператора имеет особое значение для макросов (переменного числа избегая запятую для пустого списка аргументов). Конкатенация при использовании с __VA_ARGS__
происходит только с первым токеном.
Пример:
#define MY_MACRO(...) HDR_ ## __VA_AGRS__
MY_MACRO(X, Y) yields HDR_X, Y
Предложения?
Посмотрите http://stackoverflow.com/a/1872506/832273 это, вероятно, поможет –