1.typedef语句
objective c允许编程者微数据类型另外指派一个名称。
使用typedef语句的好处主要是增加了程序的可读性。用传统方法不能够清晰表示出变量的用途。
例如:
typedef Number *NumberObject;
则如下语句:
NumberObject myValue1,myValue2,myResult;
等价于:
Number * myValue1,myValue2,myResult;
语句。
若要使用typedef语句定义一个新类型名,可按照下面的步骤:
1)像声明所需类型的变量那样编写一条语句。
2)在通常应该出现声明的变量名的地方,将其替换为新的类型名。
3)在语句的前面加上关键字typedef。
例如:
typedef enum {east, west,south,north}Direction;
Direction step1,step2;
2.数据类型转换
不同数据类型的数据是可以转换成同一种数据类型,然后进行计算。转换的方法有两种,一种是自动转换,一种是强制转换。自动转换发生在不同数据类型的数据混合运算时,由系统自动完成。Objective-C 编译器会遵循一些非常严格的规则,编译器按照下面的顺序转换不同类型的操作数。
1.如果其中一个数是long double类型的,那么另一个操作数被转换为long double类型,计算的结果也是long double类型。
2.否则,如果其中一个数是double类型的,那么另一个操作数被转换为double类型,计算的结果也是double类型。
3.否则,如果其中一个数是float 类型的,那么另一个操作数被转换为float 类型,计算的结果也是float类型。
4.否则,如果一个数是unisigned类型,那么另一个操作数被转换为unisigner 类型,计算的结果也是unisigner类型。
5.否则,如果其中一个数是long long int 类型,那么另一个操作数被转换为long long int 类型,计算的结果也是long long int 类型。
6.否则,如果其中一个数是long int类型,那么另一个操作数被转换为long int类型,计算的结果也是long int类型。
7.否则,如果其中一个数是int类型,那么其他的如Bool、char、short int、bit field、枚举类型,则全部转换为int 类型,计算的结果也是int类型。
8.unsigned 一般比同级的整形 类型高两个级别。