如:
typedef struct _cairo_clip cairo_clip_t;
为什么不直接使用_cairo_clip
?在某些代码中可以看到许多类似的定义。
答案 0 :(得分:3)
typedef
背后的想法是让您跳过struct
关键字。与C ++不同,C不允许你这样做:
struct _cairo_clip {
int a;
float b;
};
_cairo_clip cc; // Not allowed
struct _cairo_clip cc; // Allowed, but requires a keyword
答案 1 :(得分:0)
如果您尝试直接使用_cairo_clip
,则需要将其称为struct _cairo_clip
。
struct _cairo_clip
比cairo_clip_t
更详细。
使用typedef还提供了一些抽象,因为这意味着cairo_clip_t
可以实现为内置类型或实现为struct
,而不会导致语法的更改客户代码。