什么是typedef以前的名字的目的是什么?

时间:2013-02-23 02:40:09

标签: c typedef

如:

typedef struct _cairo_clip cairo_clip_t;

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

2 个答案:

答案 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_clipcairo_clip_t更详细。

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