#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;
因为选择判断符比运算符的优先级低,所以会产生不是所要的结果,所以要写包含判断语句的宏定义时,一定要记住在选择判断句结束位置加上括号。