核心图形不透明类型,它们是什么以及如何?

时间:2015-10-29 16:23:01

标签: ios core-graphics opaque-pointers

我正在学习Core Graphics,特别是学习CGContextRef。我的问题是关于不透明数据类型的语法和实现细节(如果它们是可知的)。我知道像CGContextRef这样的不透明类型是对内存中某些底层结构的引用(指针?),并且它是不透明的,因为这个结构的细节对开发人员是隐藏的。

所以如果我有一个声明的变量:CGContextRef context = UIGraphicsGetCurrentContext();为什么上下文不需要“*”才能表明这是一个引用类型/指针?这种句法奇点的语义意义是什么?

1 个答案:

答案 0 :(得分:2)

按住Command键并单击符号CGContextRef以跳转到CGContext.h中的定义,您将看到原因:

typedef struct CGContext *CGContextRef;

您不必在*变量之前添加context,因为*CGContextRef类型定义的一部分。