title: How does one declare an array of constant function pointers in C?
body: <p>I need to declare an array of pointers to functions like so:</p>
  
  <pre><code>extern void function1(void);
  extern void function2(void);
  ...
  
  void (*MESSAGE_HANDLERS[])(void) = {
     function1,
     function2,
     ...
  };
  </code></pre>
  
  <p>However, I want the the array to be declared as constant -- both the data in the array and the pointer to the data. Unfortunately, I do not recall where to place the const key-word(s).</p>
  
  <p>I'm assuming the actual pointer, MESSAGE_HANDLERS in this case, is already constant because it is declared as an array. On the otherhand, couldn't the function pointers within the array be change at runtime if it is declared as shown?</p>