title: Is following macro works properly?
body: <p>I'm having following macro</p>
  
  <pre><code>#define GET_COUNT(model,hdr)  ((model == NEW) ? \
                                ((hdr)-&gt;val.count &gt; 3 ? \
                                ((hdr)-&gt;val.count = 3) | (hdr)-&gt;val.count : \
                                (hdr)-&gt;val.count) :     \
                                (hdr)-&gt;val.count &gt; 4 ?  \
                                ((hdr)-&gt;val.count = 4) | (hdr)-&gt;val.count : \
                                 (hdr)-&gt;val.count) 
  </code></pre>
  
  <p>Above macro should work as follows</p>
  
  <p>First it need to check for the model, if model is NEW it should check for count if <code>count &gt; 3</code> it should assign count as 3 and it return count else return count value as is. If model not equal to NEW, it should check for <code>count &gt; 4</code>, if <code>count &gt; 4</code> it should assign count = 4 and return count else return count value as is. </p>
  
  <p>Is above macro works as my expectation or do i need to change any thing?</p>
  
  <p>My main concern is  after assigning a value i'm using | operator to return count value is this works?</p>