title: Casting a NULL pointer function argument resulted in violation of Misra Rule 11.3
body: <p>I define a <code>NULL_PTR</code> as <code>0U</code></p>
  
  <p>Then call a function with this <code>NULL_PTR</code> as argument.</p>
  
  <pre><code>read_some_data(2U, (uint8_t *const) NULL_PTR, (uint8_t *const) NULL_PTR);
  </code></pre>
  
  <p>Called function prototype:</p>
  
  <pre><code>int16_t read_some_data(const uint8_t id,   uint8_t *const data_1, uint8_t *const data_2);
  </code></pre>
  
  <p>On compilation, Misra raised a rule 11.3 violation error.(A cast should not be performed between a pointer type and an integral type.)</p>
  
  <p>But if I just pass the <code>NULL_PTR</code> as follows, no violation.</p>
  
  <pre><code>read_some_data(2U, NULL_PTR, NULL_PTR);
  </code></pre>
  
  <p>Which is the better way to do? Suppress Misra 11.3 rule or just pass the <code>NULL_PTR</code> without casting?</p>