Bool 유형은 Int 유형보다 작으므로 메모리에서 더 적은 공간을 사용하십시오. 컴파일 / 컴파일하는 시스템에 따라 Int는 4-8 바이트가 될 수 있지만 Bool은 1 바이트입니다 ( 이 MSDN 기사 에서 볼 수 있음 )
이것을 KISS의 일부 측면 과 좋은 프로그램 디자인과 결합하면 부울을 사용하여 2 값만 갖는 변수를 저장하는 것이 더 나은 이유가 분명해집니다.
서로 다른 값 중 1 개만 저장하면된다고 확신 할 때 넓은 범위의 값을 저장할 수있는 객체와 사물을 지나치게 복잡하게 만드는 이유는 무엇입니까?
int를 사용하는 시스템에서 75를 저장하면 어떻게됩니까? 추가 조건을 추가 한 경우
if (value >= 0 )
return true; //value is greater than 0, thus is true
else
return false; //value is 0 or smaller than 0, thus is false
또는
if (value == 0)
return false; //value is greater than 0, thus is true
else if (value == 1)
return true; //value is 0 or smaller than 0, thus is false
이 상황에 대해 다루게됩니다. 그러나 그렇지 않은 경우에는 그렇지 않습니다.
버퍼 오버런이 발생하는 값 (int 값을 변경하는 방법에 따라 다름)과 값 "resets"를 다시 0 또는 int의 하한값 (어딘가에있을 수 있음) 대상 아키텍처에 따라 -127 ~ -9,223,372,036,854,775,808의 영역 ) 코드에서 어떤 일이 발생합니까?
그러나 부울을 사용하면 다음과 같이 사용할 수 있습니다.
if(continueBool == true)
return true;
else
return false;
또는:
return (continueBool== true) ? true : false;
또는:
return continueBool;
컴파일러에 따라 Bools를 사용하여 매핑 된 true / false 값을 저장하는 코드에서 수행 할 수있는 최적화가있을 수 있습니다. 반면 매핑 된 true / false 값을 저장하는 데 사용되는 Ints에 대해 수행 할 수있는 최적화가 없을 수 있습니다.
또한 C ++ (C, Assembly 및 FORTRAN과 함께)는 매우 효율적이고 작고 빠른 코드를 작성하는 데 사용된다는 것을 기억해야합니다. 따라서이 경우 Bool을 사용하는 것이 좋습니다. 특히 변수, 메모리, 캐시 또는 프로세서 시간 사용에 표시되어있는 경우에 특히 그렇습니다.
비슷한 질문입니다 : 왜 정수 (값)를 float에 저장합니까? 답 : 의미가 없기 때문에하지 말아야합니다.
간단히 말해 : 교사 / 교사 / 강사 / 교수는 다른 가치 유형의 크기 (당신이 그것을 놓친 경우)를 살펴보고 소프트웨어 개발에서 왜 중요한지에 대해 설명합니다.
나는 그것이 출발점으로 도움이되기를 희망합니다 (나는 또한 그것이 pedantic처럼 나오지 않기를 바랍니다)
int
정수를 저장하는 것이며 a의 목적은bool
부울 값 (true
또는false
) 을 저장하는 것 입니다.bool
IMO를 사용하면을 사용하는 것보다 훨씬 잘 사용int
됩니다.