title: Can structure always end with a semicolon in C
body: <p>Here I have two structures. First is:</p>
  
  <pre><code>struct complex {
      double real, imaginary;
  };
  </code></pre>
  
  <p>which I know that it must be end with a semicolon.</p>
  
  <p>But this one with a function</p>
  
  <pre><code>struct complex add_complex(struct complex c1, struct complex c2) {
      struct complex c3;
      c3.real = c1.real + c2.real;
      c3.imaginary = c1.imaginary + c2.imaginary;
      return c3;
  }
  </code></pre>
  
  <p>Here if I don't include a semicolon at the end, then the compiler will generate no error. 
  Why? </p>