-
텅 빈 클래스 또는 구조체는 왜 0 사이즈가 아닐까?프로그래밍/의문 2021. 10. 23. 20:10반응형
클래스 또는 구조체가 사이즈 0이 될 경우 서로 다른 2개의 인스턴스가 같은 주소를 가질 수 있게 되므로, 텅 빈 클래스 또는 구조체라도 최소 1바이트 이상의 크기를 가진다.
그러나 최적화 옵션에 따라 1바이트를 표현하지 않는 규칙도 있는 듯.(empty base class optimization)
class Empty {}; struct X : Empty { int a; // ... }; void f(X* p) { void* p1 = p; void* p2 = &p->a; if (p1 == p2) cout << "nice: good optimizer"; }
반응형'프로그래밍 > 의문' 카테고리의 다른 글
CIDR (0) 2021.12.12 메세지 큐 전달 보증 비교 (0) 2021.12.09 UE4 데디케이티드 서버 만들기 샘플 (0) 2021.05.29 Flatbuffers로 만들어진 바이너리 식별 방법 (10) 2021.05.10 깃허브(Github) 계정으로 연동해 만든 깃랩(Gitlab) 계정으로 인증하기. (0) 2021.04.03