首页 > 代码库 > oc之数据类型转换规则
oc之数据类型转换规则
对含所有不同类型数据的表达式求值时,Objective-C编译器会遵循一些非常严格的规则,下面总结了表达式求值的过程中,不同类型的操作数发生转换的先后顺序:
1、如果其中一个操作数是long double类型的,另一操作数被转为long double型,则计算结果也是这种类型。
2、如果其中一个操作数是double型,另一操作数转换为double型,则计算结果也是这种类型。
3、如果其中一个操作数是float型,另一操作数转换为float型,则计算结果也是种类型。
4、如果其中一个操作数是Bool、char、short int、 bit field或枚举数据类型,则全部转换为int 型。
5、如果其中一个操作数是long int/long long int 型,另一操作数转换为long int/long long int型,计算结果也是种类型。
6、如果到达这一步,则可知两个操作数均为int型,计算结果也是这种类型。
f为float型,i为int型,l为long int型,s为short int 型
则:f*i+l/s 输出为float型
分析:f*i是float型;
l/s s是short int转换为int,后根据5 l/s转换为long int,在根据3转换为float,最后输出为float型。
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。