求解释这段代码的作用。看得懂语法但是不懂作用,等于白看了。
#define Q_COLOR_ESCAPE '^'
#define Q_IsColorString(p) ( p && (p) == Q_COLOR_ESCAPE && *((p)+1) && isalnum(((p)+1)) ) // ^[0-9a-zA-Z]
判断一个字符串指针,是不是合法的颜色数字
颜色数字判断的依据:
p 首先指针不是NULL,否则是空字符串
(p) == Q_COLOR_ESCAPE 估计是写错了,应该是 *p,表示由 '^'开头
*((p)+1) 字符串长度起码是2
这个应该也写错了,是isalnum(*((p)+1)) ,表示第二个字符是字母或者数字
复制的时候是正常的,但好像CSND把乘符号当成后面字体用斜体表示了。