• [Developer] VC++에서 bool이 가지는 의미2013.04.18 PM 05:16

게시물 주소 FONT글자 작게하기 글자 키우기
LINK : //www.jiniya.net/tt/489

링크 참조


bool 은 1바이트
int 는 4바이트

32비트 컴퓨터에서 int를 0과 비교하는데에는 cmp 명령어 하나로 4바이트가 소모됩니다. 하지만 bool을 false와 비교하는데는 movzx, test를 사용해야 하기 때문에 6바이트가 소모되죠. 즉 bool이 2바이트를 더 사용하는 것 입니다. 한 변수에 대해서 비교가 두 번 발생한다면 본전이고, 세 번 발생한다면 int가 2바이트를 절약하는 셈이 됩니다.


vector 이슈
댓글 : 8 개
헐헐 그렇군요.
그래도 프로그램을 만들면 의미상 문제가 더 중요할때가 많아서 특수한 경우가 아니라면 저렇게 까지 신경은 안쓰지만 알고 있으면 큰도웁이 되겠네요 ㅎㅎㅎ
bool 은 1byte 지만 BOOL은 4byte 입니다.
ㄴ"WinDef.h"
typedef int BOOL;
저런 복잡한거 일일이 외우고 개발하면 머리아파요...ㅋ
그냥 용량이 적으니 더 부담이 적겠지... 하고 생각했는데... 그냥 성능이 중요하지 않으면 패스 ㅠ
그리고 BOOL이 4바이트라니!
bool 이 자체가 그런것보다는 메모리에서 처리하는 과정에서 효율이 떨어지는거라는거죠?
ㄴ링크 가셔서 본문을 정독해보시는게 도움되실겁니다.

저장은 bool이 1바이트 int가 4바이트인데 어셈블리로 살펴보면 비교과정에서 저리 차이가 난다는 것이죠.
좋은 내용이네요.
친구글 비밀글 댓글 쓰기