title: Static initialization of a struct with pointer to other, as-yet undeclared static variable
body: <p>C syntax question.</p>
  
  <p>I am looking to make a declaration something like the following:</p>
  
  <pre><code>struct thingy {
      struct thingy* pointer;
  }
  
  static struct thingy thing1 = {
      .pointer = &amp;thing2
  };
  
  static struct thingy thing2 = {
      .pointer = &amp;thing1
  };
  </code></pre>
  
  <p>I have tried declaring and initializing separately, as in:</p>
  
  <pre><code>struct thingy {
      struct thingy* pointer;
  }
  
  static struct thingy thing1;
  static struct thingy thing2;
  
  thing1 = {
      .pointer = &amp;thing2
  };
  
  thing2 = {
      .pointer = &amp;thing1
  };
  </code></pre>
  
  <p>However I am not sure whether I can declare and initialize static variables separately</p>
  
  <p>Is there a way I can actually get these to point to each other from compilation?</p>