C++/Study (2) 썸네일형 리스트형 [C++] Type Conversion, 자동 형변환 C++에서 계산을 하다보면 이상하게 안 맞을 때가 있는데... 주로 소수와 관련된 연산에서 겪을 수 있다. 형 변환 규칙에 관해 들어볼 기회가 있었는데, "형변환에 대해 너무 고려하지 않고, 개발을 하고 있었구나..." 하는 생각이 들어 정리를 한번 하고자 한다. 우리가 사용하는 기본적인 변수 타입은 다음과 같다. (unsigned) char : 1 Byte (unsigned) short : 2 Byte (unsigned) long int : 4 Byte (unsigned) long long int : 8 Byte float : 4 Byte double : 8 Byte. 먼저, 잘 알려진 정보에 대해 먼저 정리해보자. Byte가 클수록 표현할 수 있는 범위도 넓다. signed/unsigned는 맨 앞 .. [C++] Memory Alignment of Struct C++에서 Struct를 만들다보면, Memory Alignment를 신경써줘야 메모리 낭비를 줄일 수 있다. 문서를 통해 정확히 확인할수는 없었지만, 이것저것 시도해보면서 찾은 나름의 규칙을 정리해보려 한다. 아래는 전체 코드이다. 코드를 따라가며 결과를 확인해볼 예정이다. 주석은 본인이 알아보려고 적은 것이어서 주석이 이해가 안 된다면 포스팅을 참고하기 바란다. #include #define printMemorySize(TYPE) \ printf(#TYPE " Size is %d\n", sizeof(TYPE)); /* Data Alignment of Struct */ // #1 : 변수는 선언된 순서대로 메모리에 저장된다. #if 0 struct ST1 { int i1 = 1; int i2 = 2; .. 이전 1 다음