차례:
정의-Sizeof Operator는 무엇을 의미합니까?
C #에서 Sizeof 연산자는 참조 형식이 아닌 관리되지 않는 형식의 크기 (바이트)를 결정하는 데 사용되는 연산자입니다.
동적 메모리 할당과 관련된 응용 프로그램을 개발하는 동안 유형에 할당 된 메모리를 찾는 것이 매우 일반적입니다. 유형의 크기를 가정하고 응용 프로그램에서 하드 코딩 된 값을 사용하는 것은 매우 안전하지 않습니다. 다른 시스템으로 이식 될 때 응용 프로그램이 중단 될 수 있습니다. sizeof 연산자는 이러한 경우 구조체와 같은 복합 데이터 유형의 크기를 찾기 위해 사용됩니다. 그러나 .NET 프레임 워크의 가상화 된 유형 레이아웃 시스템으로 인해 참조 유형이 아닌 값 유형의 바이트 크기를 계산하는 데만 사용할 수 있습니다.
sizeof 연산자는 관리 응용 프로그램에서 Interop, 사용자 지정 직렬화 등과 같은 관리되지 않는 코드로 전달되는 데이터 구조에 대한 메모리 할당을 도와줍니다. 포인터에서 작동하는 증가 및 감소 연산자는 내부에서 sizeof 연산자를 사용하여 포함 된 주소를 증가 또는 감소시킵니다. 포인터 유형에서 차지하는 바이트 수와 동일한 값으로 포인터 변수에 sizeof 연산자는 코드 가독성을 향상시키는 데 도움이됩니다.
Techopedia는 Sizeof Operator를 설명합니다
sizeof 연산자는 단일 매개 변수를 사용하며 키워드 "sizeof"와 함께 사용되는 단항 연산자입니다. C ++와 달리 sizeof 연산자는 컴파일 타임 구문이므로 매개 변수는 변수가 아니라 컴파일 중에 알려진 닫힌 유형이어야합니다. 매개 변수는 필드 또는 참조 유형 특성이없는 열거 형, 포인터 또는 사용자 정의 구조체 일 수도 있습니다. 미리 정의 된 특정 유형의 경우 sizeof 연산자는 상수 값을 반환하는 반면 나머지 유형과 함께 사용하면 구현에 따라 값이 결정됩니다.
예를 들어, sizeof 연산자를 정수 (int)를 매개 변수로 사용하여 실행하면 정수 유형의 변수가 4 바이트의 메모리를 차지함을 나타 내기 위해 항상 숫자 4를 반환합니다.
sizeof 연산자가 구조체 유형 피연산자에 적용되면 구조체가 차지하는 총 바이트 수를 가져옵니다. 여기에는 내부 정렬에 사용되는 패딩 바이트가 포함됩니다. 구조체와 함께 sizeof 연산자를 사용하는 동안 따라야 할 지침은 다음과 같습니다.- 안전하지 않은 블록 내에서 호출해야합니다
- 구조체 변수는 참조 타입의 멤버를 포함해서는 안됩니다
- 구조체는 일반 값 형식이 아니어야합니다
