title: Macro Redefined Warning
body: <p>I'm writing this code and a warning appear when I tried to compile. </p>
  
  <pre><code>#include &lt;stdio.h&gt;
  #include &lt;math.h&gt;
  #define EPS 1.5e-6
  #define M_PI 3.14159265358979
  int main()
  {
  double x1,x2,xm,y1,y2,ym; 
  int m;
  for(m=0;m&lt;11;m++){
          x1=1.450;
          x2=1.489;
          y1=atan(pow(x1*x1-1.5*1.5,0.5)/pow(1.489*1.489-x1*x1,0.5))\
          + atan(pow(x1*x1-1.450*1.450,0.5)/pow(1.489*1.489-x1*x1,0.5))\
          - 4.5 * EPS * ((2 * M_PI)/(1.5 * EPS)) * pow(1.489*1.489-x1*x1,0.5)\
          + m*M_PI*1.5;
          y2=atan(pow(x2*x2-1.5*1.5,0.5)/pow(1.489*1.489-x2*x2,0.5))\
          + atan(pow(x2*x2-1.450*1.450,0.5)/pow(1.489*1.489-x2*x2,0.5))\
          - 4.5 * EPS * ((2 * M_PI)/(1.5 * EPS)) * pow(1.489*1.489-x2*x2,0.5)\
          + m*M_PI*1.5;
          if(y1*y2&gt;0){
                  printf("change initial values\n");
               }
          else{
          while(fabs(x1-x2)&gt;EPS){
          xm=(x1+x2)/2;
          ym=atan(pow(xm*xm-1.5*1.5,0.5)/pow(1.489*1.489-xm*xm,0.5))\
          + atan(pow(xm*xm-1.450*1.450,0.5)/pow(1.489*1.489-xm*xm,0.5))\
          - 4.5 * EPS * ((2 * M_PI)/(1.5 * EPS)) * pow(1.489*1.489-xm*xm,0.5)\
          + m*M_PI*1.5;
          if(y1*ym&gt;0){
   x1=xm;
   }
  else{
  x2=xm;
  }
          }
          printf("n[%d] = %.9f;\n",m, xm);
  }
  }
  return 0; }
  </code></pre>
  
  <p>The warning is :</p>
  
  <blockquote>
    <p>warning: 'M_PI' macro redefined [-Wmacro-redefined]</p>
  </blockquote>
  
  <p>I can't figure out how to make the warning disappear</p>