-
[Developer] VC++에서 bool이 가지는 의미2013.04.18 PM 05:16
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 개
- 당근천국
- 2013/04/18 PM 05:36
헐헐 그렇군요.
그래도 프로그램을 만들면 의미상 문제가 더 중요할때가 많아서 특수한 경우가 아니라면 저렇게 까지 신경은 안쓰지만 알고 있으면 큰도웁이 되겠네요 ㅎㅎㅎ
그래도 프로그램을 만들면 의미상 문제가 더 중요할때가 많아서 특수한 경우가 아니라면 저렇게 까지 신경은 안쓰지만 알고 있으면 큰도웁이 되겠네요 ㅎㅎㅎ
- TYPE-1046R
- 2013/04/18 PM 05:37
bool 은 1byte 지만 BOOL은 4byte 입니다.
- 손나은지
- 2013/04/18 PM 05:38
ㄴ"WinDef.h"
typedef int BOOL;
typedef int BOOL;
- 설영시
- 2013/04/18 PM 05:42
저런 복잡한거 일일이 외우고 개발하면 머리아파요...ㅋ
- 랑시
- 2013/04/18 PM 05:53
그냥 용량이 적으니 더 부담이 적겠지... 하고 생각했는데... 그냥 성능이 중요하지 않으면 패스 ㅠ
그리고 BOOL이 4바이트라니!
그리고 BOOL이 4바이트라니!
- 강화인간
- 2013/04/18 PM 06:04
bool 이 자체가 그런것보다는 메모리에서 처리하는 과정에서 효율이 떨어지는거라는거죠?
- 손나은지
- 2013/04/18 PM 06:07
ㄴ링크 가셔서 본문을 정독해보시는게 도움되실겁니다.
저장은 bool이 1바이트 int가 4바이트인데 어셈블리로 살펴보면 비교과정에서 저리 차이가 난다는 것이죠.
저장은 bool이 1바이트 int가 4바이트인데 어셈블리로 살펴보면 비교과정에서 저리 차이가 난다는 것이죠.
- 정직하게살자!
- 2013/04/18 PM 06:08
좋은 내용이네요.
user error : Error. B.