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);