title: Pointer to incomplete type is not allowed, defining global struct
body: <p>well i'm having difficulties, i cant work with struct pointers in other .c files,
  always when i'm passing pointers to structs to functions not in the same .c file as the struct it annoying me with such messages. and also when i can't access struct members of one struct from other .c file i'm g
  what am i doing wrong? my includes? that's for example two of my structs .h files:</p>
  
  <p>Server.h  :</p>
  
  <pre><code>#ifndef SERVER_H
  #define SERVER_H
  typedef struct Server_s* Server;
  
  #include &lt;stdio.h&gt;
  #include &lt;stdlib.h&gt;
  #include &lt;string.h&gt;
  #include "Company.h"
  #include "Client.h"
  #include "Order.h"
  #include "SMSServer.h"
  #include "MMSServer.h"
  
  Server InstallServer(CompanyL pcompanyList , ClientL pclientList , OrderL porderList);
  void RunServer(Server pmainServer);
  void OrdersToDoPerTimestamp(FILE *result , Server pmainServer , int currentTimestamp);
  #endif
  </code></pre>
  
  <p>Client.h   :</p>
  
  <pre><code>#ifndef _CLIENT_H
  #define _CLIENT_H
  typedef struct Client_s* Client;
  typedef struct ClientNODE* ClientL;
  #include &lt;stdio.h&gt;
  #include &lt;stdlib.h&gt;
  #include &lt;string.h&gt;
  #include "Server.h"
  ClientL InstallClients(CompanyL pcompanyList , char* pfileName);
  void AppendClientNode(ClientL pclientList , CompanyL pcompanyList , char* ptelNumber , char* pclientType , char* pclientCredit);
  Client FindClient(ClientL pclientList, char* pclientTelNumber);
  double getCostAndChargeSMSMessage(Client sourceNumber , Company sourceNumberCompany);
  #endif
  </code></pre>
  
  <p>i can create one struck type in other .c files, but later can't access their members?
  please guide me a bit.</p>