C++: a macro seems to be a bit strange
<p>I've just started studying c++. Pardon for such a question.
My task is to write a macro to calculate the circumference and test it.</p>

<pre><code>#define _USE_MATH_DEFINES
#include &lt;cmath&gt;

#define LENGTH(radius) (2 * M_PI * radius)

float l1 = LENGTH(1 + 2); // The result should be 18.8495... I have 8.28. Incorrect result.
float l2 = 1 / LENGTH(2); // The result should be  0.07957... Working correctly.
</code></pre>

<p>I added extra pair of parenthethis: </p>

<pre><code>float l1 = LENGTH((1 + 2)); // Correct result.
</code></pre>

<p>How can write such a macro to I get the correct result without adding extra parentheses?</p>
