.c ファイルで定義された構造体である変数があります。
struct {
int write_cursor;
int read_cursor;
message messages[10];
} out_messages = {0, 0};
他のファイルで利用できるようにするために、次の.hファイルがあります。
extern struct {
int write_cursor;
int read_cursor;
message messages[10];
} out_messages;
これは、Microchip C18 コンパイラで機能しました。XC8 コンパイラは次のエラーを返します。
communications.c:24: error: type redeclared
communications.c:24: error: conflicting declarations for variable "out_messages" (communications.h:50)