How do I declare, versus define a struct, such as for data shared between multiple files. I understand the idea when defining primitives. So, for example, I might have:
extern int myvalue; /* in shared header file */
and
int myvalue = 5; /* in data.c file */
But, how do I do the same thing for structs. For example, if I have the following type:
typedef struct {
size_t size;
char * strings[];
} STRLIST;
If I then use the statement:
STRLIST list;
This is both a declaration and definition. So, how do apply the same principle of using an extern?