Это выдержка из заголовка я нашел в библиотеке 3 партии:Объявление 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*);
Что бы понять, что функция возвращает указатель на структуру aiFile.
В случае, если его значение struct aiFile
определено в том же заголовке пару строк позже.
Может быть, потому что заголовочный файл был создан для использования в C++ проекта, где ' struct' ключевое слово не требуется? Или, может быть, есть 'typedef', которого вы не видели? –
Я на 99% уверен, что этот заголовок должен использоваться из C. Это файл, если вы не против взглянуть: https://github.com/assimp/assimp/blob/d6551990433264e029b476455db90d1d889e461c/include/assimp/ cfileio.h – user10607
Затем я предлагаю вам сообщить об этом автору как ошибку. –