ref 특성

[ref] 특성은 참조 포인터를 식별합니다. 간접 참조 수준을 나타내는 데만 사용됩니다.

pointer_default(ref)

typedef [ ref [[ , type-attribute-list ]] ] type-specifier declarator-list; 

typedef [ struct | union ] 
{
    [ ref [[ , field-attribute-list ]] ] type-specifier declarator-list;
    ...}

[[ [ function-attribute-list ] ]] type-specifier [[ptr-decl]] function-name(
    [ ref [[ , parameter-attribute-list ]] ] type-specifier [[standard-declarator]]
    , ...);

매개 변수

type-attribute-list

형식에 적용되는 하나 이상의 특성을 지정합니다. 유효한 형식 특성에는 [handle], [switch_type], [transmit_as]이 포함됩니다. 포인터 특성 [ref], [unique]또는 [ptr]; 및 사용 특성 [context_handle], [문자열][무시]. 여러 특성을 쉼표로 구분합니다.

type-specifier

기본 형식, 구조체, 공용 구조체 또는 열거형 형식 또는 형식 식별자를 지정합니다. 선택적 스토리지 사양은 형식 지정자 앞에 설 수 있습니다.

표준 선언자

식별자, 포인터 선언자 또는 배열 선언자와 같은 표준 C 선언자를 지정합니다. 자세한 내용은 배열 및 Sized-Pointer 특성, 배열배열 및 포인터를 참조하세요.

declarator-list

식별자, 포인터 선언자 및 배열 선언자와 같은 표준 C 선언자를 지정합니다. 자세한 내용은 배열 및 Sized-Pointer 특성, 배열배열 및 포인터를 참조하세요. declarator-list는 쉼표로 구분된 하나 이상의 선언자로 구성됩니다. 함수 선언자의 매개 변수 이름 식별자는 선택 사항입니다.

field-attribute-list

구조체, 공용 구조체 멤버 또는 함수 매개 변수에 적용되는 0개 이상의 필드 특성을 지정합니다. 유효한 필드 특성에는 [first_is], [last_is], [length_is], [max_is], [size_is]이 포함됩니다. 사용 특성 [문자열], [무시][context_handle]; 포인터 특성 [ref], [unique] 또는 [ptr]; 및 union 특성 [switch_type]. 여러 필드 특성을 쉼표로 구분합니다.

function-attribute-list

함수에 적용되는 0개 이상의 특성을 지정합니다. 유효한 함수 특성은 [콜백], [로컬]입니다. 포인터 특성 [ref], [unique] 또는 [ptr]; 및 사용 특성 [문자열], [무시][context_handle].

ptr-decl

[ref] 특성이 적용되는 포인터 선언자를 하나 이상 지정합니다. 포인터 선언자는 C에서 사용되는 포인터 선언자와 동일합니다. * 지정자, 한정자(예: far) 및 한정자 const에서 생성됩니다.

function-name

원격 프로시저의 이름을 지정합니다.

parameter-attribute-list

지정된 매개 변수 형식에 적합한 0개 이상의 특성으로 구성됩니다. 매개 변수 특성은 방향 특성 [in][out]을 사용할 수 있습니다. 필드 특성 [first_is], [last_is], [length_is], [max_is], [size_is][switch_type]; 포인터 특성 [ref], [unique] 또는 [ptr]; 및 사용 특성 [context_handle][문자열]. 사용 특성 [ignore] 는 매개 변수 특성으로 사용할 수 없습니다. 여러 특성을 쉼표로 구분합니다.

설명

포인터 특성은 구조체 멤버, 공용 구조체 멤버 또는 매개 변수에 적용되는 필드 특성으로 형식 특성으로 적용할 수 있습니다. 또는 함수 반환 형식에 적용되는 함수 특성입니다. 포인터 특성은 [pointer_default] 키워드(keyword) 함께 표시할 수도 있습니다.

참조 포인터에는 다음과 같은 특성이 있습니다.

  • 항상 유효한 스토리지를 가리킵니다. 에는 NULL 값이 없습니다. 참조 포인터는 항상 역참조할 수 있습니다.
  • 통화 중에는 변경되지 않습니다. 참조 포인터는 항상 호출 전후에 클라이언트의 동일한 스토리지를 가리킵니다.
  • 클라이언트에 새 메모리를 할당하지 않습니다. 서버에서 반환된 데이터는 호출 전에 참조 포인터의 값으로 지정된 기존 스토리지에 기록됩니다.
  • 별칭을 발생시키지 않습니다. 참조 포인터가 가리키는 스토리지는 함수의 다른 이름에서 연결할 수 없습니다.

참조 포인터는 함수에서 반환하는 포인터의 형식으로 사용할 수 없습니다.

최상위 포인터 매개 변수에 대해 지정된 특성이 없으면 참조 포인터로 처리됩니다.

[unique] char * GetFirstName( 
    [in, ref] char * pszFullName);

참고 항목

배열

배열 및 포인터

배열 및 Sized-Pointer 특성

MIDL 기본 형식

콜백

const

context_handle

열거형

first_is

처리

무시

last_is

length_is

로컬

max_is

out

ptr

size_is

문자열

구조체

switch_type

transmit_as

연합

고유