这是我在第三方库中找到的标题的摘录:
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
在同一个标题中定义了几行。
答案 0 :(得分:3)
我能想到的唯一解释是标题是针对C ++的,你不会need to typedef
struct names。
如果标题设计为从C使用,那么这是一个错误,因为代码不会构建为C.