【发布时间】:2013-09-22 13:15:42
【问题描述】:
考虑以下函数
CGSize CGSizeIntegral(CGSize size)
{
return CGSizeMake(ceilf(size.width), ceilf(size.height));
}
CGSize实际上是由两个CGFloat组成,而CGFloat的定义会根据架构而变化:
typedef float CGFloat;// 32-bit
typedef double CGFloat;// 64-bit
所以,上面的代码在 64 位系统上是错误的,需要用类似的东西更新
CGSize CGSizeIntegral(CGSize size)
{
#if 64_bit
return CGSizeMake(ceil(size.width), ceil(size.height));
#else
return CGSizeMake(ceilf(size.width), ceilf(size.height));
#endif
}
这肯定有一个编译器宏/常量(例如,对于 Mac,我们可以使用 INTEL_X86),但我无法在 64-bit transition guide 中找到它。
我如何确定构建的架构是什么?
【问题讨论】:
标签: ios 32bit-64bit ios7