title: C Macro Behavior
body: <p>I have the simple following C code</p>
  
  <pre><code>#define Sqrt(A) A * A
  
  
  int main(void) {
  
      int A = 10;
  
      int x = Sqrt(A+1);
  
      return 0;
  
  }
  </code></pre>
  
  <p>For some reason, when I used it like that, with A+1, I get x to be 21, which is probably 10+11.
  My question is, how is the multiplication is being ignored?
  If I switch the macro with the macro text, I get the right result which is 121.</p>
  
  <p>Thanks.</p>