1

我正在学习结构和 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 被列出两次?

4

2 回答 2

2

如果你不使用

typedef struct CGPoint CGPoint;

你不能写

CGPoint rectPt;

但是你必须明确地写

struct CGPoint rectPt;

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

于 2013-08-30T01:26:17.943 回答
1

之后typedef可以使用CGPoint代替 struct CGPoint.

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

typedef struct CGPoint{
    CGFloat x;
    CGFloat y;
} CGPoint;
于 2013-08-30T01:49:02.260 回答