반응형 메모리최적화2 C# Struct vs Class: 차이점과 최적 사용 사례 C#에서 struct와 class는 객체를 정의하는 데 사용되지만, 중요한 차이점이 있으며 각각 특정 상황에서 적합합니다. 이를 비교하고 언제 사용하는 것이 유리한지 설명하겠습니다.1. 주요 차이점특성 Struct Class기본 형식값 형식 (Value Type)참조 형식 (Reference Type)메모리 할당스택(Stack)힙(Heap)복사 방식값 복사 (deep copy)참조 복사 (shallow copy)상속상속 불가상속 가능기본 생성자기본 생성자를 정의할 수 없음기본 생성자를 정의할 수 있음Null 가능성기본적으로 Null이 될 수 없음Null 값을 가질 수 있음변경 가능성기본적으로 불변 (Immutable)가변적 (Mutable)2. Struct를 사용하는 경우가벼운 데이터 구조메모리 사용량이.. 2025. 1. 6. 비트맵 한 줄의 바이트 수를 4의 배수로 맞추는 방법: (K + 3) & ~3 연산 문제 분석DWORD dwWidthStep 변수는 비트맵(Bitmap) 이미지의 한 줄(가로)의 픽셀 데이터를 저장하는 데 필요한 메모리 크기(바이트)를 나타냅니다. 이 값은 비트맵 이미지의 가로 크기(nWidth)와 각 픽셀의 비트 수(nBitCount)를 기반으로 계산되지만, DIB(디바이스 독립 비트맵) 구조에서는 그 값이 4의 배수여야 한다는 규칙이 있습니다. 이 문제에서 다루는 계산식은 다음과 같습니다:DWORD dwWidthStep = (DWORD)((nWidth * nBitCount / 8 + 3) & ~3);이 코드에서 dwWidthStep을 계산하는 과정과 그 의미를 자세히 설명하겠습니다.1. nWidth * nBitCount / 8 계산우리는 비트맵 이미지를 메모리에 저장할 때, 각 픽셀.. 2023. 6. 24. 이전 1 다음 반응형