语句内嵌表达式格式为({xxx});其返回值为最后一个表达式的值花括号内可以是各种表达式,但是最后一个表达式必须是非声明以分号结尾的表达式,比如:最后如果是int test = 5;就会报错, int test = 5并没有返回值。语句内嵌表达式最常用的地方是在宏定义中。
1.比如常用的max定义
如果普通定义#define max(a,b) ((a) > (b) ? (a) : (b)),那么ab有一个会被计算了两次,结果就错了假如int a = 2, b = 3;mac(a++,b++)展开后为((a++) > (b++) ? (a++) : (b++)) = 5那么就错了,应该返回4