title: Define an array with #define command not complying with misra rules
body: <p>I have this definition: </p>
  
  <pre><code>static const char* STRING_ARRAY[NUM_UNITS] = STRING_ARRAY_VALUES;
  </code></pre>
  
  <p>when</p>
  
  <pre><code>#define STRING_ARRAY_VALUES                 \
  {   "n/a",                                  \
    "bool",                                   \
    ...                                       \
  }
  </code></pre>
  
  <p>Unfortunately, it's not complying with MISRA-C++ Rule 8-5-2: </p>
  
  <pre><code>"MISRA-C++ Rule 8-5-2 (required): Braces shall be used to indicate and match the 
  structure in the non-zero initialization of arrays and structures."
  </code></pre>
  
  <p>Can anyone please explain to me why it's not complying? I thought that the #define command turn the definition to something like:</p>
  
  <pre><code>static const char* STRING_ARRAY[NUM_UNITS] = {"n/a", "bool",...}
  </code></pre>
  
  <p>which is complying with MISRA rules.</p>
  
  <p>Is there a way to make this to comply with MISRA while keeping the <code>#define</code>?</p>