为什么CGPoint宣布两次?

时间:2013-08-30 01:21:19

标签: c struct typedef

我正在学习结构和typedef定义中的结构。我理解普通的typedef定义,但在这个例子中,typedef用于struct data points

struct CGPoint{
    CGFloat x;
    CGFloat y;
};

typedef struct CGPoint CGPoint;

CGPoint rectPt;

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

我不理解typedef struct CGPoint CGPoint; 为什么CGPoint会被列出两次?

2 个答案:

答案 0 :(得分:2)

如果你不使用

typedef struct CGPoint CGPoint;

你不能写

CGPoint rectPt;

但你必须明确写

struct CGPoint rectPt;

因为在C中定义struct并不会自动为C ++中的类型名定义

答案 1 :(得分:1)

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

实现这一目标的一种更简单的方法是将它们组合起来:

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