Core Graphics 不透明类型,它们是什么以及如何使用?
Core Graphics Opaque type, what are they and how?
我正在学习 Core Graphics,尤其是 CGContextRef。我的问题是关于不透明数据类型的语法和实现细节(如果它们是已知的)。我知道 CGContextRef 等不透明类型是对内存中某些底层结构的引用(指针?),并且它是不透明的,因为该结构的细节对开发人员是隐藏的。
因此,如果我有一个这样声明的变量:CGContextRef context = UIGraphicsGetCurrentContext();
为什么上下文前面不需要“*”来表示这是一个引用 type/pointer?这种句法奇点的语义意义是什么?
按住 Command 并单击符号 CGContextRef
可跳转到其在 CGContext.h
中的定义,您会明白原因:
typedef struct CGContext *CGContextRef;
您不必在 context
变量之前放置 *
,因为 *
是 CGContextRef
类型定义的一部分。
我正在学习 Core Graphics,尤其是 CGContextRef。我的问题是关于不透明数据类型的语法和实现细节(如果它们是已知的)。我知道 CGContextRef 等不透明类型是对内存中某些底层结构的引用(指针?),并且它是不透明的,因为该结构的细节对开发人员是隐藏的。
因此,如果我有一个这样声明的变量:CGContextRef context = UIGraphicsGetCurrentContext();
为什么上下文前面不需要“*”来表示这是一个引用 type/pointer?这种句法奇点的语义意义是什么?
按住 Command 并单击符号 CGContextRef
可跳转到其在 CGContext.h
中的定义,您会明白原因:
typedef struct CGContext *CGContextRef;
您不必在 context
变量之前放置 *
,因为 *
是 CGContextRef
类型定义的一部分。