【问题标题】:iPhone/Objective-C struct question my own CGRectZeroiPhone/Objective-C 结构质疑我自己的 CGRectZero
【发布时间】:2010-04-25 15:25:26
【问题描述】:

我正在设计一个 Padding 结构如下:

/* Padding. */
struct CGPadding {
 CGFloat left;
 CGFloat top;
 CGFloat right;
 CGFloat bottom;
};
typedef struct CGPadding CGPadding;

CG_INLINE CGPadding CGPaddingMake(CGFloat left, CGFloat top, CGFloat right, CGFloat bottom) { CGPadding p; p.left = left; p.top = top; p.right = right; p.bottom = bottom; return p; }

这一切都很好,问题是我如何创建一个 const CGPadding CGPaddingZero?如果我这样做:

const CGPadding CGPaddingZero = (CGPadding){0.0, 0.0, 0.0, 0.0};

它不起作用。那我做错了什么?

【问题讨论】:

  • “它不起作用”是什么意思?编译器错误?运行时错误?某处的值错误?

标签: iphone objective-c struct


【解决方案1】:

我觉得这很有趣,因为我一直在 iPhone 上这样做,而且效果很好。可能与同名之后的typedef有关吗?如果你去掉 typedef 并像这样定义你的结构怎么办?

typedef struct CGPadding {
 CGFloat left;
 CGFloat top;
 CGFloat right;
 CGFloat bottom;
} CGPadding;

那么它有效吗?此外,由于浮点数的所有 0 都为零,并且您将整个事情归零,您可以说

const CGPadding CGPaddingZero = {0};

我一直在 iPhone 上做这些事情,所以如果它不适合你,我会很惊讶。

【讨论】:

  • 在 blabla.o 文件中显示重复符号 _CGPaddingZero (...) 失败,退出代码为 1
猜你喜欢
  • 2011-12-14
  • 1970-01-01
  • 2011-06-09
  • 1970-01-01
  • 2018-06-17
  • 1970-01-01
  • 1970-01-01
  • 2014-02-12
  • 1970-01-01
相关资源
最近更新 更多