iOS宏定义问题

#define SECONDS_PER_YEAR 60*60*24*365UL   //用预处理指令#define 明一个常数,用以表明1年中有多少秒(忽略闰年问题)#define 语法的基本知识(例如:不能以分号结束,括号的使用,等等) 懂得预处理器将为你计算常数表达式的值,因此,直接写出你是如何计算一年中有多少秒而不是计算出实际的值,是更清晰而没有代价的,意识到这个表达式将使一个16位机的整型数溢出因此要用到长整型符号L,告诉编译器这个常数是的长整型数,如果你在你的表达式中用到UL(表示无符号长整型),那么你有了一个好的起点

#define MINx(A,B) ((A) <= (B) ? (A) : (B)) //写一个标准MIN ,这个宏输入两个参数并返回较小的一个。  #define MIN(A,B) ((A <= (B) ? (A) : (B))。我也用这个问题开始讨论宏的副作用,例如:当你写下面的代码时会发生什么事?     least = MIN(*p++, b);    结果是:((*p++) <= (b) ? (*p++) : (*p++))这个表达式会产生副作用,指针p会作三次++自增操作。

分享到: 更多
Separator image Posted in IOS.

发表评论

电子邮件地址不会被公开。 必填项已用*标注