Concatenate literal de string com char literal

Quero concat uma string literal e char literal. Sendo sintaticamente incorreto,"abc" 'd' "efg" gera um erro do compilador:

x.c: 4: 24: erro: esperado ',' ou ';' antes de 'd'

Agora, eu tenho que usar snprift (desnecessariamente), apesar do valor da string literal e do char literal serem conhecidos em tempo de compilaçã

Eu tente

#define CONCAT(S,C) ({ \
    static const char *_r = { (S), (C) }; \
    _r; \
})

mas não funciona porque o terminador nulo deS não é retirado. (Além de fornecer avisos ao compilador.)

Existe uma maneira de escrever uma macro para usar

"abc" MACRO('d') "efg" ouMACRO1(MACRO2("abc", 'd'), "efg") ouMACRO("abc", 'd', "efg") ?

No caso de alguém perguntar por que eu quero isso: o literal char é de uma biblioteca e preciso imprimir a string como uma mensagem de statu

questionAnswers(8)

yourAnswerToTheQuestion