У вас есть #define
для linux
до 1
где-то в вашем коде. Следующее работает отлично!
#include <stdio.h>
#undef linux
#define QUOTE(str) #str
#define EXPAND_AND_QUOTE(str) QUOTE(str)
#define TEST one-of-a-linux
int main(void)
{
printf(EXPAND_AND_QUOTE(TEST)"\n");
return 0;
}
Выход:
/*
$ gcc mm.c
$ ./a.out
one-of-a-linux
$
*/
Примечание:
#define TEST 1linux
#define TEST linux1
печатает ожидаемые ответы соответствующим образом!