title: Incompatible enum types in C
body: <p>I have a question about enums and arrays. Essentially I have an array of enum "BIT"s declared as an enum type "word".</p>
  
  <pre><code>typedef enum {
  ZERO = (uint8_t) 0, ONE = (uint8_t) 1
  } BIT;
  
  typedef BIT word[16];
  </code></pre>
  
  <p>As it was explained to me, "word" is simply a predefined array of 16 BITs. However, when I try to assign to a declared word, I simply get an error saying incompatible type word and BIT.</p>
  
  <pre><code>BIT ten = ZERO;
  word Bob;
  Bob[10] = ten;
  </code></pre>
  
  <p>Can I only write to the word Bob with another word, I would have thought since "word" is an array of "BIT"s that I could simply assign a bit to a position in the "word" array.</p>