Fork me on GitHub

面试题001

  • 写一个标准宏 MIN/MAX

利用 __typeof__ 重新声明 2 个相同类型的变量,在把相关的值赋值给新的变量,在进行比较,这样可以排除其他的各种优先级问题。

1
2
#define kMIN(a,b) ({__typeof__(a) __a__COUNTER__ = (a);__typeof__(b) __b__COUNTER__ = (b);(__a__COUNTER__) < (__b__COUNTER__) ? (__a__COUNTER__) : (__b__COUNTER__);})
#define kMAX(a,b) ({__typeof__(a) __a__COUNTER__ = (a);__typeof__(b) __b__COUNTER__ = (b);(__a__COUNTER__) > (__b__COUNTER__) ? (__a__COUNTER__) : (__b__COUNTER__);})
  • OC如何实现多继承 具体怎么做

可以使用 OC 的消息转发机制,消息转发有 3 个过程 参考动态方法解析 -> 转发 -> 自由派发。可以在 第 2 步第 3 步来让相关的方法转发给其他对象,从而实现多继承类似的功能。

- END -
扫一扫上面的二维码图案,加我微信

文章作者:梁大红

特别声明:若无特殊声明均为原创,转载请注明,侵权请联系

版权声明:署名-非商业性使用-禁止演绎 4.0 国际