bool 타입이 1bit가 아닌 이유

이세민·2024년 2월 1일

C언어를 공부하다가 의문의 생겼다.
bool은 true와 false로 경우의 수가 2개이므로
1bit, 즉, 0과1만으로 표현할 수 있다.
그러나 C언어에서, Java에서도, bool 타입은 1바이트의 크기를 차지했다.

asm같은 로우레벨언어를 사용하며 메모리를 극한으로 활용했던
고전게임 개발자분들을 동경하는 사람인 나에겐
1비트로 나타낼 수 있는걸 1바이트나 사용한다는게 너무 불편한 진실이었다.

따라서 바로 구글링을 시작했고, 답은 일찍 찾을 수 있었다.

CPU는 1바이트보다 작은 크기의 데이터를 처리할 수 없다.
메모리 주소를 매길 수 있는 최소한의 단위도 1바이트이다.
메모리가 바이트 단위로 정렬되고 bool을 1bit로 사용하는것보다
1바이트로 사용하여 오히려 CPU가 메모리에 접근하는것이 훨씬 효율적이기 때문이다.

profile
gsm 8기 고등학생

0개의 댓글