문제

일부 코드를 살펴보면 다른 개발자가 True의 모든 인스턴스를! false로 변경했음을 알았습니다. 왜 그렇게 하시겠습니까? 고마워

도움이 되었습니까?

해결책

진실이 아닌 거짓을 쓸만한 이유는 없습니다.
나쁜 이유는 난독 화 (코드를 읽기가 더 어려워지기), 개인 취향, 글로벌 검색 및 재구점을 잘못 고려하고 부울 값을 정수로 변환하는 것이 포함될 수 있습니다.

BOOL 유형이 아니라 ints이며 부울 진술에 사용될 때 경고를 유발할 수있는 Win32의 진정한 정의에 의해 약간의 혼란이 발생했을 수 있습니다. 주로 0이 아닌 것은 "true"이지만 부울 대신 정수를 사용할 때 "true"가 항상 하나인지 확인하려면 때때로 이와 같은 셰 나니 간을 볼 수 있습니다. 여전히 좋은 이유가 아닙니다 ;-)

다른 팁

나는 전혀 모른다. 그리고 나는 한동안 C ++를 쓰고있다. 나는 그가 이유가 무엇이든 그들이 좋은 사람이 아니었다는 것을 생각합니다.

나는 이것이 역사적 일이라고 생각합니다. IIRC 일부 C/C ++ 컴파일러에는 컴파일러가 True로 표현하는 데 무엇을 사용할 것인지 알고있는 문제가있었습니다. 당신은 거짓이 0이라는 것을 알 수 있으므로! 거짓은 현재 ABI가 참을 수있는 모든 것이 될 것입니다.

일반적으로 이것은 중복이지만 유용한 몇 가지 특별한 경우가 있지만 생각할 수는 없습니다.

라인이라면 필요할 수 있습니다

#define true false

단지 일어난 헤더 어딘가에 있으려면 :)

어쩌면 그는 코드에서 너무 많은 진실과 거짓을 얻었고 쉽게 뒤집기를 원했습니다. 편집자의 검색을 사용하고 교체 할 수 있습니다.

나는 실제로 알지 못하지만 사실이 될 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top