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