title: (C/C++) struct initalization syntax
body: <p>When I make my own struct, say:</p>
  
  <pre><code>struct myStruct{
      int data1;
      int data2;
      string data3;
  }
  </code></pre>
  
  <p>I can initialize an instance of type myStruct like this:</p>
  
  <pre><code>myStruct instance1;
  </code></pre>
  
  <p>So my question is, <strong>why am I often seeing "struct" written during the initialization of a struct?</strong> 
  Maybe that's an inaccurate statement so here is an example of what I mean: </p>
  
  <pre><code>/*This is a tiny program that checks
    to see if a file exists in
    the current working directory. */
  
  #include &lt;sys/stat.h&gt;
  #include &lt;iostream&gt;
  using namespace std;
  
  const string FILENAME = data.txt;
  
  int main(){
  
      struct stat fileStatus; //&lt;-- HERE HERE HERE!
      if (FileExists(FILENAME, fileStatus)){
          cout &lt;&lt; "File Does Exist" &lt;&lt; endl;
      }else{
          cout &lt;&lt; "File Does NOT Exist" &lt;&lt; endl;
      }
  
      return 0;
  }
  
  bool FileExists(const string &amp; fileName,struct stat &amp; fileStatus){
  
      bool fileDoesNotExist = stat (fileName.c_str(), &amp;fileStatus);
      return !fileDoesNotExist;
  }
  </code></pre>
  
  <p>>
      LINE 13: struct stat fileStatus;</p>
  
  <p><strong>Is this something that was done in C for some reason?<br>
  Something with a macro or a typedef?</strong><br>
  I just don't understand why this is the way it is.</p>