• [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바이트인데 어셈블리로 살펴보면 비교과정에서 저리 차이가 난다는 것이죠.
좋은 내용이네요.
친구글 비밀글 댓글 쓰기

user error : Error. B.