您的位置:首页 > 其它

宏定义中的选择判断句

2015-11-08 22:51 190 查看
#define kViewWidth (isLowIPhone6?(375.0f): iWidthScreen)

#define kViewWidth isLowIPhone6?(375.0f): iWidthScreen


这两个宏定义使用中的结果一样吗?

float edge = kViewWidth - iWidthScreen;


1、当设备是iPhone6或以上时

前者的结果是 375.0f - iWidthScreen;// edge = (1?(375.0f): iWidthScreen) - iWidthScreen;

后者的结果是 375.0f; // edge = 1?(375.0f): iWidthScreen - iWidthScreen;

2、当设备低于iPhone6时

前者的结果是 0;// edge = (0?(375.0f): iWidthScreen) - iWidthScreen;

后者的结果是0;// edge = 0?(375.0f): iWidthScreen - iWidthScreen;

因为选择判断符比运算符的优先级低,所以会产生不是所要的结果,所以要写包含判断语句的宏定义时,一定要记住在选择判断句结束位置加上括号。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  iphone6