我在努力制作这样一个宏:C宏中的令牌粘贴(##)反斜杠
BYTE_AS_STRING(0A);
扩展为:
“\ X0A”
这可能吗?
到目前为止,我已经试过这样:
#define STEP2(a) #a
#define BYTE_AS_STRING(byte) STEP2(\x##byte)
和:
#define STEP3(a) #a
#define STEP2(a, b) STEP3(\##a##b)
#define BYTE_AS_STRING(byte) STEP2(x, byte)
没有成功。有任何想法吗?
谢谢。
你为什么要那样做?当你的意思是只写'“\ x0a”'时,会不会更简单(并且更具可读性)? –
哼......看着答案,我不确定你现在的真实含义。您是否确实将宏展开为“\ x0a”或“\\ x0a”? (即换行,或文字'反斜杠x零a'?) – Mat