title: Why does C need "struct" keyword and not C++?
body: <p>I've always been a little confused about what's going on here:</p>
  
  <pre><code>#include &lt;stdio.h&gt;
  
  int main() {  
      timeval tv;
      tv.tv_sec = 1;
  
      for (;;) {
          select(0, 0, 0, 0, &amp;tv);
          printf("%s\n", "Hello World!");
      }
  }
  </code></pre>
  
  <p>Sorry if that doesn't compile, just wrote it as a quick example.</p>
  
  <p>Code like this won't compile under gcc unless I add the keyword <strong>struct</strong> prior to the use of the struct timeval.  g++ on the other hand handles it fine as is.</p>
  
  <p>Is this a difference between how C and C++ handle structures or is it just a difference in the compilers?  (I'm very C++ oriented, and the use of struct in C on lines like this has always somewhat baffled me).</p>