최근에이 프로그래밍 관용구를 접했습니다.
const float Zero = 0.0;
그런 다음 비교에 사용됩니다.
if (x > Zero) {..}
이것이 실제로 다음보다 더 효율적이거나 읽기 쉽고 유지 가능한지 설명 할 수 있습니까?
if (x > 0.0) {..}
참고 : 나는 이 상수를 정의 해야하는 다른 이유를 생각할 수 있습니다 .Im 은이 맥락 에서 그 상수에 대해 궁금 합니다.
x
유형이 float
인 경우 x > 0.0
승격을 (으 double
)로 설정하면 효율성이 떨어질 수 있습니다. 그게 당신의 상수 (예 : 올바른 유형을 바로 확인하고 들어 명명 된 상수 불구을 사용하는 좋은 이유가 아니다 0f
, float(0)
또는 decltype(x)(0)
).
13.37
아니다 float
, 그것은이다 double
. 그래서 당신이 원한다면 당신의 교사는 정확 했을 것 float
입니다. 일부 컨텍스트 (예 : 플로트에 할당) 13.37
는 암시 적으로 float
원하는 것으로 변환 되고 다른 컨텍스트 (예 : 템플릿 유형 공제)는 그렇지 않지만 static const float
항상 의도 한 유형으로 시작됩니다. 따라서 형식이 더 안전합니다. 당신을 염두에 두십시오 13.37f
! "type-safety"보다는 매크로를 피해야하는 다른 이유가 있기 때문에, 교사가 당신에게 잘못된 주장을했을 가능성이 높습니다.