为函数返回一个返回结构指针的typedef?

时间:2014-10-20 12:07:50

标签: c struct typedef

这是我在第三方库中找到的标题的摘录:

struct aiFileIO;
struct aiFile;

// aiFile write callback
typedef size_t   (*aiFileWrite) (struct aiFile*, const char*);

// aiFileIO open callback
typedef aiFile* (*aiFileOpen)  (struct aiFileIO*, const char*);

为什么最后一行在返回类型之前不包含struct类型说明符? 换句话说,为什么这最后一行不是:

typedef struct aiFile* (*aiFileOpen)  (struct aiFileIO*, const char*);

这将清楚地表明该函数返回一个指向struct aiFile的指针。

如果它很重要,struct aiFile在同一个标​​题中定义了几行。

1 个答案:

答案 0 :(得分:3)

我能想到的唯一解释是标题是针对C ++的,你不会need to typedef struct names

如果标题设计为从C使用,那么这是一个错误,因为代码不会构建为C.