0

如:

typedef struct _cairo_clip cairo_clip_t;

为什么不直接使用_cairo_clip?在一些代码中看到许多类似的定义。

4

2 回答 2

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
于 2013-02-23T02:43:42.377 回答
0

如果您尝试直接使用_cairo_clip,则需要调用它struct _cairo_clip

struct _cairo_clip比 更详细cairo_clip_t

使用 typedef 还提供了一些抽象,因为这意味着它cairo_clip_t可以实现为内置类型或实现为 a struct,而不会导致客户端代码的语法发生变化。

于 2013-02-23T02:45:00.520 回答