(二)define 宏定义

前言

面试题大全中提到了好多关于define的面试题,正好找到一篇介绍define很好的奥,还活着哦写的博客,整理总结

1、一年有多少秒

#define SECONDS_PER_YEAR (60*60*24*365)UL

为什么加ul 一开始我也不知道 ,l代表long,如果在16位的系统上(ios有16位的么)606024*365会超过15位的溢出了,所以给一个long类型,u代表的是无符号数,毕竟这个时间不可能是负数,恩是这样的
2、x平方函数

#define SQR(x) ((x)*(x))

这里可以看到有很多的括号,为何呢。写成SQR(x) xx行不行,当然一般情况下是可以的,如果x=10+1,这个表达式就编程10+110+1,代码验证过了。恩所以还是多写括号吧。
3、取消宏定义undef

#define SQR(x) ((x)*(x))

#undef SQR

以上操作可以取消SQR的宏定义,简单粗暴
4、求最大值

#define MAX(x, y) ((x)>(y) ? (x) : (y))

最小值同理,其实我目前接触到的oc这边用到的宏定义比较简单,原博文介绍c语言中的用法比较多。
原作者说了一句话非常厉害

define 是个演技高超的替身演员,但也经常耍大牌

总结自[http://www.cnblogs.com/haore147/p/3646934.html]

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

友情链接更多精彩内容