【问题标题】:Why is CGPoint declared twice?为什么 CGPoint 被声明了两次?
【发布时间】:2013-08-30 01:21:18
【问题描述】:

我正在学习结构中的结构和 typedef 定义。我理解正常的 typedef 定义,但在这个例子中 typedef 用于结构数据点

struct CGPoint{
    CGFloat x;
    CGFloat y;
};

typedef struct CGPoint CGPoint;

CGPoint rectPt;

rectPt.x=2;
rectPt.y=3;

我不明白 typedef struct CGPoint CGPoint; 为什么 CGPoint 被列出两次?

【问题讨论】:

标签: c struct typedef


【解决方案1】:

如果你不使用

typedef struct CGPoint CGPoint;

你不会写

CGPoint rectPt;

但是你必须明确地写

struct CGPoint rectPt;

因为在 C 中定义 struct 不会像在 C++ 中那样自动为其定义类型名

【讨论】:

    【解决方案2】:

    typedef 之后,您可以使用CGPoint 代替struct CGPoint

    实现这一点的更简单方法是像这样组合它们:

    typedef struct CGPoint{
        CGFloat x;
        CGFloat y;
    } CGPoint;
    

    【讨论】:

      猜你喜欢
      • 2016-08-21
      • 2013-11-20
      • 2019-10-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多