我有,我想如果可能的话转换成一个长度值的字符串,所有内宏,常见的字符串宏,所以在一切结束了.rodata
。
#define PAYLOAD "xyz"
#define PAYLOAD_LEN (sizeof(PAYLOAD)-1)
我想用PAYLOAD_LEN,作为字符串,在另一个字符串,例如零件
const char lv_macro[] = "<preamble>" PAYLOAD_LEN ":" PAYLOAD;
const char lv_wanted[] = "<preamble>3:xyz"`
我怀疑这是不可能的,我应该只定义PAYLOAD_LEN为文字,如#define PAYLOAD_LEN 3
,然后字符串化 。
我可以,但不想,忘记.rodata
并在运行时产生的,如
char lv[64];
snprintf(lv, sizeof lv, "<preamble>%zu:" PAYLOAD, PAYLOAD_LEN);
请注意,这是不是已经提出和回答已经问题在这里 ,例如,在许多其他问题。