switch_is 특성

[switch_is] 특성은 공용 구조체 구성원을 선택하는 공용 구조체 비범죄자 역할을 하는 식 또는 식별자를 지정합니다.

typedef struct [[ struct-tag ]] 
{
    [ switch_is(limited-expr) [[ , field-attr-list ]] ] union-type-specifier declarator;
    ...
}

[[ [function-attribute-list] ]] type-specifier [[pointer-declarator]] function-name(
    [ switch_is(limited-expr) [[ , param-attr-list ]] ] union-type [[declarator]]
    , ...);

매개 변수

struct-tag

구조체에 대한 선택적 태그를 지정합니다.

limited-expr

MIDL에서 지원하는 C 언어 식을 지정합니다. 거의 모든 C 언어 식이 지원됩니다. MIDL 컴파일러는 조건식, 논리 식, 관계형 식 및 산술 식을 지원합니다. MIDL은 식에서 함수 호출을 허용하지 않으며 사전 및 사후 증가 및 전/후 감소 연산자를 허용하지 않습니다.

field-attr-list

공용 구조체 멤버에 적용되는 0개 이상의 필드 특성을 지정합니다. 유효한 필드 특성에는 [first_is], [last_is], [length_is], [max_is], [size_is]이 포함됩니다. 사용 특성 [string], [ignore][context_handle]; 포인터 특성 [ref], [unique]또는 [ptr]; 그리고 자신이 노조인 멤버의 경우 공용 구조체 특성 [switch_type]입니다. 여러 필드 특성을 쉼표로 구분합니다.

union-type-specifier

공용 구조체 형식 식별자를 지정합니다. 선택적 스토리지 사양은 형식 지정자보다 우선할 수 있습니다.

declarator 및 declarator-list

식별자, 포인터 선언자 및 배열 선언자와 같은 표준 C 선언자를 지정합니다. (함수 선언자 및 비트 필드 선언은 원격 프로시저 호출에서 전송되는 공용 구조체에서 허용되지 않습니다. 이러한 선언자는 전송되지 않는 공용 구조체에서 허용됩니다.) 여러 선언자를 쉼표로 구분합니다.

function-attribute-list

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

type-specifier

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

pointer-declarator

포인터 선언자를 0개 이상 지정합니다. 포인터 선언자는 C에서 사용되는 포인터 선언자와 동일합니다. * 지정자, 멀리와 같은 한정자 및 한정자 const에서 생성됩니다.

function-name

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

param-attr-list

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

union-type

공용 구조체 형식 지정자를 식별합니다.

설명

[switch_is] 특성과 연결된 비범죄자는 공용 구조체와 동일한 논리적 수준에서 정의되어야 합니다.

  • union이 매개 변수인 경우 공용 구조체 비범죄자는 다른 매개 변수여야 합니다.
  • 공용 구조체가 구조체의 필드인 경우, 비범죄자는 동일한 구조체의 다른 필드여야 합니다.

구조체 또는 함수 매개 변수 목록의 시퀀스는 중요하지 않습니다. 공용 구조체는 앞에 오거나 비난자를 따를 수 있습니다.

[switch_is] 특성은 필드 특성 또는 매개 변수 특성으로 나타날 수 있습니다.

typedef [switch_type(short)] union _WILLIE_UNION_TYPE 
{ 
    [case(24)] 
        float fMays; 
    [case(25)] 
        double dMcCovey; 
    [default] 
        ; 
} WILLIE_UNION_TYPE; 
 
typedef struct _WINNER_TYPE 
{ 
    [switch_is(sUniformNumber)] WILLIE_UNION_TYPE w; 
    short sUniformNumber; 
} WINNER_TYPE;

참고 항목

MIDL 기본 형식

콜백

const

context_handle

캡슐화된 공용 구조체

열거형

first_is

무시

last_is

length_is

로컬

max_is

Nonencapsulated 공용 구조체

ptr

Ref

size_is

문자열

구조체

switch_type

연합

고유