C Сообщение заголовочного файла о структуре в файле ac без #include - PullRequest
0 голосов
/ 10 ноября 2019

Немного странной проблемы здесь.

Со структурой, определенной в одном файле .c, и другой структурой, определенной в файле .h, как я могу сообщить файлу .h о структуре в.c (и наоборот), через другой .h или .c. IE файла: без возможности редактировать любой файл для включения или переопределения.

main.c:

typedef struct mystruct
{
    int whatever;
} Thing;

#include "header.h"
#include "otherHeaderThatIcanEdit.h"

otherstruct thisMethod()
{
    //returns an otherstruct
}

header.h:

typedef struct otherstruct
{
         float whatever;
} Stuff;

mystruct thisMethod()
{
    //returns a mystruct;
}

1 Ответ

0 голосов
/ 10 ноября 2019

В приведенном вами примере обе структуры видны обеим функциям, где эти структуры фактически используются. Но вы должны поставить перед mystruct и otherstruct ключевое слово struct, например:

struct otherstruct thisMethod()
{
//returns an otherstruct
}

struct mystruct thisMethod()
{
//returns an otherstruct
}

или, если вы не можете изменить их, вы можете записать в файл, который можно изменить, две следующие строки

typedef Thing mystruct;
typedef Stuff otherstruct;

обратите внимание, что обе функции имеют одинаковое имя, что является ошибкой.

...