Код
sprintf( "abcdr\x41" "ddddd %d"....)
и пусть компилятор склеивает строки.
А ещё, на мой взгляд, правильнее так:
Код
#define STR_MY_CONTROL_SYMBOL "\x41"
sprintf( "abcdr" STR_MY_CONTROL_SYMBOL "ddddd %d"....)
Ну в смысле так :-)
CODE
#define STRINGFY_(x) #x
#define STRINGFY(x) STRINGFY_(x)
#define STR_RESET "\x1B" "c"
#define STR_HOME_CLR "\x1B[2J"
#define STR_ATTR_OFF "\x1B[m"
#define STR_ATTR_BOLD "\x1B[1m"
#define STR_ATTR_UNDERLINE "\x1B[4m"
#define STR_ATTR_REVERSE "\x1B[7m"
#define STR_ATTR_BOLD_REVERSE "\x1B[1;7m"
#define STR_SCROLL_FROM(from) "\x1B[" STRINGFY(from) "r"
#define STR_GO_LP(line,pos) "\x1B[" STRINGFY(line) ";" STRINGFY(pos) "H"
// ну тут ещё всякое
#define SCROLL_BEGIN 19
#define SCROLL_END 24
// Это собирается _одна_ длинная строка и одним оператором отправляется в порт
uart << STR_RESET // Reset terminal (attributes, scroll area & so on)
STR_HOME_CLR // Clear screen and go home
"scmRTOS sample 4-Debug\n"
STR_ATTR_BOLD_REVERSE // set header attributes
"Process\tStack\tCPU%\n"
STR_ATTR_OFF // clear attributes
STR_SCROLL_FROM(SCROLL_BEGIN)
STR_GO_LP(SCROLL_END,1) // cursor to bottom of screen (and scroll area)
;