I have this in a C file:
struct T
{
int foo;
};
the C file has an include to an h file with those lines:
typedef struct T T;
void listInsertFirst(T data, int key, LinkedList* ListToInsertTo);
the function listInsertFirst is the one I’m getting the warning on. How can I fix it?
As we’ve found out in the comments, the problem was that the definition of
struct Toccurred after the definition ofTin the header. You really have things backwards here. The header should be defining all the types and function prototypes and your C files should be using them.What you want to be doing instead is change the signature of your insert function to receive a pointer to your data and the size of the data. Then you can allocate some memory for the data, copy it and store it. You don’t need a specific type, just declare it a
void *.Then the caller would do something like this: