BOOL의 크기가 4 바이트 (예 : 4의 배수)이기 때문에 BOOL (typedef int)을 사용하는 것이 표준 C++ 유형 bool보다 낫다는 것을 읽었습니다. 변수를 레지스터 또는 그 라인에있는 어떤 것으로 정렬하는 작업 ...성능을위한 BOOL (typedef int) 대 bool
이게 무슨 진실이 있습니까? 나는 컴파일러가 bool (1 바이트)을 사용하더라도 4의 배수의 정렬을 유지하기 위해 스택 프레임을 채울 것이라고 상상한다.
필자는 결코 정렬, 레지스터 등의 기본 동작에 대한 전문가가 아니므로 완전히 잘못했을 경우 사전에 사과드립니다. 나는 시정되기를 희망한다. :)
건배!
'bool'이 4 바이트보다 빠를 경우 컴파일러는 4 바이트로 만듭니다. 시나리오에 따라 다릅니다. 따라서 BOOL은 성능상의 이점을주지 않습니다. – tenfour
이것은 프로파일 링을 통해서만 발견 할 수있는 것이지만 0,1 이외의 값을 가질 수있는 bool을 원하십니까? 심지어 부정적인 가치? – juanchopanza
아무런 차이가 없습니다. 컴파일러는 값이 올바르게 정렬되도록 값을 채 웁니다. 가장 합리적인 유형을 사용하십시오. 부울 값이면 'int'(또는 일부 typedef)가 아닌 'bool'이되도록합니다. –