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

请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会报错!
报"未找到用户定义的文本运算符"。。。大家帮帮,谢谢了先

  XSTR(A)"."XSTR(B)"."XSTR(C) 被宏替换后是字符串:
    "A.B.C"
    cpVersionString是指针变量,指向一个版本字符串如:“3.2.1”

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