宏中的逗号

很多地方看到使用一个宏

#define WIN_ID(_ID_)            WINID, 100

这中间的逗号是 其实是  逗号表达式 右侧表达式

宏里面还有一些其他的表符号表达式 优先级:*> +> => , 

#define f(x) x*x,x+x

表达式 x*x,x+x 根据逗号表达式的右结合性,它取x+x

#define g(x) f(x)=x*x,x+x

如果是这样定义的话,等号高于逗号 f(x)的对应的是 x*x   g(x)根据逗号表达式对应的是 x+x

原文地址:https://www.cnblogs.com/baoshulin/p/4587693.html