Desc :
자료형의 실제 크기를 알 수 있다면
프로그래밍 과정에서 발생하는 스택 깨짐, 통신 loss 등 여러 문제에 대처할 수 있는 방법을 찾을 수 있음
class 크기가 다른 이유
컴퓨터 프로세서의 데이터 버스는 한 번에 8바이트 데이터를 담아 이동하는데
(64bit 운영체제에서 한 번에 처리할 수 있는 데이터의 양은 64bit, 즉 8byte이다.)
4바이트 단위로 몇 번 움직이느냐에 따라 sizeof의 결과가 달라진다
클래스 Temp는 int 4바이트 + bool 1바이트 = 5바이트지만
데이터 버스는 한 번 이동하여 결과가 8바이트가 됨
클래스 Temp1는 int 4바이트 +double 8바이트 = 12바이트지만
데이터 버스는 두 번 이동하여 결과가 16바이트가 됨
Source Code :
#include <iostream>
using namespace std;
class Temp{
int no;
bool is_on;
};
class Temp1 {
int no;
double db;
};
int main()
{
cout << "char 크기 : " << sizeof('p') << endl;
cout << "int 크기 : " << sizeof(10) << endl;
cout << "double 크기 : " << sizeof(10.0) << endl;
cout << "클래스 크기 : " << sizeof(Temp) << endl;
cout << "클래스 크기 : " << sizeof(Temp1) << endl;
return 0;
}
Result :
'C++' 카테고리의 다른 글
[C++] 034 중첩 순환문 for ~ continue ~ break (0) | 2021.03.18 |
---|---|
[C++] 032, 033 중첩 조건문 if ~ else if ~ else (0) | 2021.03.18 |
[C++] 030 명시적 변환 (0) | 2021.03.18 |
[C++] 029 캐스트 연산자 (0) | 2021.03.18 |
[C++] 028 비트 연산자 (0) | 2021.03.18 |