我正在学习结构和 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 被列出两次?
如果你不使用
typedef struct CGPoint CGPoint;
你不能写
CGPoint rectPt;
但是你必须明确地写
struct CGPoint rectPt;
因为在 C 中定义 astruct
不会像在 C++ 中那样自动定义类型名
之后typedef
可以使用CGPoint
代替 struct CGPoint
.
实现这一点的更简单方法是像这样组合它们:
typedef struct CGPoint{
CGFloat x;
CGFloat y;
} CGPoint;