MAX-内核最优秀的写法

微信:https://mp.weixin.qq.com/s/0ZVNbTj7fGs8Gi03vj541A

博客:https://www.jianshu.com/p/12c6b703856a

MAX-内核最优秀的写法_第1张图片

MAX-内核最优秀的写法_第2张图片

 

执行完max(x++,y++),我们期望max的值为2,x的值为2,y的值为3

 

如果处理这个副作用??

 

MAX-内核最优秀的写法_第3张图片

 

#define min(x,y) ({\
    typeof(x) _x = x; \
    typeof(y) _y = y; \
    (void) ( &_x == &_y ); \
    _x>_y ? _y : _x;})

#define max(x,y) ({\
    typeof(x) _x = x; \
    typeof(y) _y = y; \
    (void) ( &_x == &_y ); \
    _x>_y ? _x : _y;})

说明:}) 类似于 逗号的运算规则

 

说明:问题还有 error: expected primary-expression before 'typeof'

MAX-内核最优秀的写法_第4张图片

 

怎么办?

 

https://www.jianshu.com/p/12c6b703856a

 

MAX-内核最优秀的写法_第5张图片

 

MAX-内核最优秀的写法_第6张图片

此时 可以解决我的问题了!!

MAX-内核最优秀的写法_第7张图片

 

MAX-内核最优秀的写法_第8张图片

 

MAX-内核最优秀的写法_第9张图片

果然 这个办法很棒!!

MAX-内核最优秀的写法_第10张图片

你可能感兴趣的:(MAX-内核最优秀的写法)