title: C language preprocessor behavior
body: <p>There are different kind of macros in the <strong>C</strong> language, nested macro is one of them.</p>
  
  <p>Considering a program with the following macro</p>
  
  <pre><code>#define HYPE(x,y) (SQUR(x)+SQUR(y))
  #define SQUR(x)   (x*x)
  </code></pre>
  
  <p>Using this we can successfully compile to get the result. </p>
  
  <p>As we all know the <strong>C</strong> preprocessor replaces all the occurrence of the identifiers with the replacement-string. Considering the above example I would like to know how many times the <strong>C</strong> preprocessor traverses the program to replace the macro with the replacement values. I assume it cannot be done in one go.</p>