내 컴퓨터에서 네트워크 메시지를 전달하기 위해 LayoutKind.Explicit 특성을 사용하여 의사 공용 구조체로 C# 구조체를 사용하고 있습니다. 기본 크기의 레이아웃을 사용하는 방법을 알고 있습니다.배열을 포함하는 구조체의 크기
그러나 char 배열 인 필드 중 하나를 사용하면 어떻게 될까요? 나는 char가 데이터의 2 바이트 (유니 코드 형식 일 때)라는 것을 알고 있지만, char []는 얼마나 큰가? 이것이 참조 유형이라고 믿는 것이 맞습니까? 그 크기는 단지 항목 수 * 2가 아닙니다.
어떻게 구조체를 레이아웃합니까? 심지어 가능할까요?
대단히 고마워요. 내 생각을 확인해주었습니다. 참조 크기는 컴파일 된 설정에 따라 다르며 실행되는 시스템이 아닌 올바른 것입니까? 따라서 32 비트 어셈블리는 64 비트 OS에서 실행될 때에도 4 바이트의 레퍼런스 크기를 갖습니다. – Venatu
@Venatu 런타임, 컴파일 타임이 아닙니다. 따라서 OS 의존적입니다. 당신은 특정 CPU를 대상으로하여 런타임을 선택하는 것을 돕는다. (가능하다면) –