Всем привет,мне нужно генерировать строковые литералы из 2-х составляющих для дальнейшего использования их в printf, или puts. Наваял вот такой макрос, склеивающий строки:
#define PASTE(a, b) a##b
puts(PASTE("abc", "def"));
Вываливается с ошибкой:
error: pasting ""abc"" and ""def"" does not give a valid preprocessing token
Почему не воспринимаются эти токены, что не нравится препроцессору? Вообще может быть есть какой-то более правильный способ для моей задачи?
PS. Если макрос переделать вот так:
#define PASTE(a, b) #a#b
то все компилируется отлично, но строка выводится в таком виде, что и понятно:
"abc""def"
Мне бы хотелось так:
abcdef