|
#define d 1
#define tostr(ff) #ff
#define ttt(ggg) tostr(ggg)
#define str ttt(d)"строка"
Получится "1строка", а я хотел "\001строка"
На самом деле решение есть (сейчас коллективно нашли :):
#include #define CODE 0A #define HEX_CODE(y) 0x ##y #define MAKE_STR(x) ss(MAKE_CHAR_CODE(x)) Лаконичным его ну никак не назовешь :))
E-mail:
info@telesys.ru
#define MAKE_HEX_CODE(x) HEX_CODE(x)
#define CHAR_CODE(y) \x ##y
#define MAKE_CHAR_CODE(x) CHAR_CODE(x)
#define s(x) #x
#define ss(x) s(x)
void main(void)
{
char *a = "авл " MAKE_STR(CODE) "jfgnjh ";
printf(a);
switch(*a)
{
case MAKE_HEX_CODE(CODE):
break;
};
}
Ответы