首页 > 代码库 > 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型。