Проблема тут в том, что Вы хотите выполнить конкатенацию строки с символом ("abcd" + '2'), а в си этого не предусмотрено.
Хотя если погуглить - видно что Вы не единственный такой в мире.

Вот
пример (правда похоже, что не рабочий).
Задачу, наверное, Вы сможете решить только придумаете как средствами препроцессора разбить строку на массив символов (
попытки также можно найти в инете), плюс использование составных литералов, которые появились в С99:
Код
#include <stdio.h>
int main(void) {
enum spec_symb_t {
PLUS = 0x2b,
MINUS = 0x2d
};
puts("+-");
puts((const char[]) {PLUS, MINUS, '\0'});
return 0;
}
Попутно у меня к Вам возникает встречный вопрос - ради чего такая акробатика в коде?

Вы где и как это предполагаете использовать?
p.s. может быть
здесь сможете что-то найти...