저는 C++을 공부하기 시작했습니다. 그런 질문에 용서해주십시오. 내 작업은 원주를 계산하고 테스트하는 매크로를 작성하는 것입니다. 내가 여분의 괄호를 추가하지 않고 정확한 결과를 얻기에 C++ : 매크로가 이상하게 보입니다.
float l1 = LENGTH((1 + 2)); // Correct result.
어떻게 이러한 매크로를 작성 할 수 있습니다
#define _USE_MATH_DEFINES
#include <cmath>
#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.
나는 parenthethis의 추가 쌍을 추가?
당신이 할 수있는 최선의 방법은'constexpr' (또는 not) 함수를 작성하는 것입니다. – Griwes
여기서 이상한 점은 매크로를 사용하는 것입니다. 인라인 함수가 더 적절할 것입니다. –