title: C: variable has initializer but incomplete type
body: <p>Trying to get my head around the old C language. Currently on structs and getting this error:</p>
  
  <pre><code>"variable 'item1' has initializer but incomplete type"
  </code></pre>
  
  <p>Here's my code:</p>
  
  <pre><code>typedef struct
  {
      int id;
      char name[20];
      float rate;
      int quantity;
  } item;
  
  void structsTest(void);
  
  int main()
  {
      structsTest();
  
      system("PAUSE");
      return 0;
  }
  
  void structsTest(void)
  {
      struct item item1 = { 1, "Item 1", 345.99, 3 };
      struct item item2 = { 2, "Item 2", 35.99, 12 };
      struct item item3 = { 3, "Item 3", 5.99, 7 };
  
      float total = (item1.quantity * item1.rate) + (item2.quantity * item2.rate) + (item3.quantity * item3.rate);
      printf("%f", total);
  }
  </code></pre>
  
  <p>I guessed perhaps the struct defintion was in the wrong location so I moved it to the top of the file and recompiled, but I am still getting the same error. Where's my mistake?</p>