分析以下这段代码的结果就能得到答案。
CGFloat a = 5.3f;
CGFloat b = 5.3;
NSLog(@"%lu %lu", sizeof(a), sizeof(b));
NSLog(@"%lu %lu", sizeof(double), sizeof(float));
NSLog(@"%lu %lu", sizeof(typeof(5.3)), sizeof(typeof(5.3f)));
以下是打印结果:
8 8
8 4
8 4
第一行结果说明对于CGFloat类型来说,加不加f都是一样的。
根据第二行结果:double是8字节,float是4字节。第三行结果说明不加f后缀的话类型为double,加f后缀的话类型为float。
结论:
1.如果是赋给CGFloat类型,则加不加f后缀都是一样的。
2.如果是赋给double或float类型,就要考虑精度的问题。不加f后缀的话类型为double,8字节,加f后缀的话类型为float,4字节。