请c++大牛帮回答下一个 关于宏的问题

代码如下:
#define STR(s) #s

#define XSTR(s) STR(s)

#define CP_VERSION_M 6

#define CP_VERSION_MI 1

#define CP_VERSION_RE 2

const char *cpVersionString = XSTR(CP_VERSION_M)"."XSTR(CP_VERSION_MI)"."XSTR(CP_VERSION_RE);

其中 XSTR(A)"."XSTR(B)"."XSTR(C) ,A,B,C代表常量, "."是什么符号?作用是什么?

*cpVersionString 最终是什么值? 因为很奇怪这个语法在别的版本不报错,"." 在vs2015会报错!
报"未找到用户定义的文本运算符"。。。大家帮帮,谢谢了先

2个回答

  XSTR(A)"."XSTR(B)"."XSTR(C) 被宏替换后是字符串:
    "A.B.C"
    cpVersionString是指针变量,指向一个版本字符串如:“3.2.1”
zhohoku813
爱的阶 谢谢大哥,就是这个意思! 不过 这个 A"."B"."C "."这个符号在 vc++ 2015 算语法错误,是啥原因?
接近 5 年之前 回复

使用#把宏参数变为一个字符串

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问