손나은지 MYPI

손나은지
접속 : 5671   Lv. 69

Category

Profile

Counter

  • 오늘 : 63 명
  • 전체 : 2231575 명
  • Mypi Ver. 0.3.1 β
[Developer] VC++에서 bool이 가지는 의미 (8) 2013/04/18 PM 05:16
링크 참조


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

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


vector 이슈

신고

 

당근천국    친구신청

헐헐 그렇군요.
그래도 프로그램을 만들면 의미상 문제가 더 중요할때가 많아서 특수한 경우가 아니라면 저렇게 까지 신경은 안쓰지만 알고 있으면 큰도웁이 되겠네요 ㅎㅎㅎ

TYPE-1046R    친구신청

bool 은 1byte 지만 BOOL은 4byte 입니다.

손나은지    친구신청

ㄴ"WinDef.h"
typedef int BOOL;

설영시    친구신청

저런 복잡한거 일일이 외우고 개발하면 머리아파요...ㅋ

랑시    친구신청

그냥 용량이 적으니 더 부담이 적겠지... 하고 생각했는데... 그냥 성능이 중요하지 않으면 패스 ㅠ
그리고 BOOL이 4바이트라니!

강화인간    친구신청

bool 이 자체가 그런것보다는 메모리에서 처리하는 과정에서 효율이 떨어지는거라는거죠?

손나은지    친구신청

ㄴ링크 가셔서 본문을 정독해보시는게 도움되실겁니다.

저장은 bool이 1바이트 int가 4바이트인데 어셈블리로 살펴보면 비교과정에서 저리 차이가 난다는 것이죠.

정직하게살자!    친구신청

좋은 내용이네요.
X