宏定义中的选择判断句
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;
因为选择判断符比运算符的优先级低,所以会产生不是所要的结果,所以要写包含判断语句的宏定义时,一定要记住在选择判断句结束位置加上括号。
相关文章推荐
- C/C++ 宏详细解析
- 深入探讨:宏、内联函数与普通函数的区别
- C++十六进制宏的用法详解
- C++基础入门教程(二):数据、变量、宏等
- 枚举和宏的区别详细解析
- 浅析c++ 宏 #val 在unicode下的使用
- 如何在C语言的宏中使用类型关键字
- 树形结构
- 巧用可变参数宏、编译器内置宏和printf输出调试信息
- 用宏获取函数名
- C语言之“宏”
- do...while(0)在宏定义中的巧妙用法
- do...while(0)在宏定义中的巧妙用法
- 万能类型的设计
- office(excel/word/ppt)宏工程,vba工程密码去除
- iPhone6 怎么关联两个QQ号码? iPhone6 Plus关联QQ号码
- UI在Xcode中添加空iPhone6模板
- C/C++预处理器总结
- 黑马程序员---【C语言】06预处理命令
- typedef和define区别