다음을 통해 공유


sizeof(C# 참조)

관리되지 않는 형식에 대한 바이트 단위의 크기를 가져오는 데 사용됩니다. 관리되지 않는 형식에는 다음 표에 나열된 기본 제공 형식뿐 아니라 다음 형식도 포함됩니다.

  • 열거형 형식

  • 포인터 형식

  • 참조 형식인 필드나 속성을 포함하지 않는 사용자 정의 구조체

다음 예제에서는 int의 크기를 검색하는 방법을 보여 줍니다.

// Constant value 4:
int intSize = sizeof(int); 

설명

C# 버전 2.0부터는 기본 제공 형식에 sizeof를 적용할 때 unsafe 모드를 사용하지 않아도 됩니다.

sizeof 연산자는 오버로드되지 않습니다. sizeof 연산자가 반환하는 값은 int 형식입니다. 다음 표에서는 특정 기본 제공 형식을 피연산자로 사용하는 sizeof 식 대신 사용되는 상수 값을 보여 줍니다.

상수 값

sizeof(sbyte)

1

sizeof(byte)

1

sizeof(short)

2

sizeof(ushort)

2

sizeof(int)

4

sizeof(uint)

4

sizeof(long)

8

sizeof(ulong)

8

sizeof(char)

2(유니코드)

sizeof(float)

4

sizeof(double)

8

sizeof(decimal)

16

sizeof(bool)

1

구조체를 포함한 다른 모든 형식의 경우에는 안전하지 않은 코드 블록에서만 sizeof 연산자를 사용할 수 있습니다. Marshal.SizeOf 메서드를 사용할 수 있지만 이 메서드가 반환하는 값이 sizeof가 반환하는 값과 항상 같지는 않습니다. Marshal.SizeOf는 형식이 마샬링된 후의 크기를 반환하지만, sizeof는 패딩을 포함하여 공용 언어 런타임에서 할당된 크기를 반환합니다.

예제

    class MainClass
    {
        // unsafe not required for primitive types 
        static void Main()
        {
            Console.WriteLine("The size of short is {0}.", sizeof(short));
            Console.WriteLine("The size of int is {0}.", sizeof(int));
            Console.WriteLine("The size of long is {0}.", sizeof(long));
        }
    }
    /*
    Output:
        The size of short is 2.
        The size of int is 4.
        The size of long is 8.
    */

C# 언어 사양

자세한 내용은 C# 언어 사양을 참조하세요. C# 언어 사양은 C# 구문 및 사용법에 대한 신뢰할 수 있는 소스입니다.

참고 항목

참조

C# 키워드

연산자 키워드(C# 참조)

enum(C# 참조)

안전하지 않은 코드 및 포인터(C# 프로그래밍 가이드)

구조체(C# 프로그래밍 가이드)

상수(C# 프로그래밍 가이드)

개념

C# 프로그래밍 가이드

기타 리소스

C# 참조