title: Proper way to define const through the chain
body: <p>Take the following example where I want to get a <code>const</code> <strong>dog</strong> and <strong>cat</strong> object:</p>
  <pre><code>// place 1 (type declaration)
  const typedef struct Animal {
      int id;         
      char* name;
  } Animal;
  
  // place 2 (singleton creation/assignment)
  const Animal Dog =  {1, &quot;Dog&quot;};
  const Animal Cat =  {2, &quot;Cat&quot;};
  
  
  // place 3 (reference of singleton)
  void main(void) {
      const Animal dog = Dog;
      const Animal* dogPtr = &amp;Dog;
  }
  </code></pre>
  <p>Each time here I am using the <code>const</code> prefix. Is the <code>const</code> prefix required in all of the above three places, or is it only required on the first, or what's the proper way to go through this entire chain and why?</p>