const-attribut

Nyckelordet const ändrar typen av en typdeklaration eller typen av en funktionsparameter, vilket förhindrar att värdet varierar.

const const-type identifier = const-expression ;

[ typedef [ , type-attribute-list ] ] const const-type declarator-list;

[ typedef [ , type-attribute-list ] ] pointer-type const declarator-list;

[ [ function-attr-list ] ] type-specifier [ ptr-decl ] function-name(
    [ [ parameter-attribute-list ] ] ) const; 

const-type [declarator], [ [ parameter-attribute-list ] ] pointer-type const [declarator], ...);

Parameters

const-type

Anger ett giltigt MIDL-heltal, tecken, sträng eller boolesk typ. Giltiga MIDL-typer är små, korta, långa, char, char *, wchar_t, wchar_t *, byte, byte *och void *. Heltals- och teckentyperna kan signeras eller osigneras.

identifierare

Anger en giltig MIDL-identifierare. Giltiga MIDL-identifierare består av upp till 31 alfanumeriska och/eller understreckstecken och måste börja med ett alfabetiskt tecken eller understreck.

const-expression

Anger ett uttryck, en identifierare eller numerisk eller teckenkonstant som är lämplig för den angivna typen: konstant heltal eller konstanta heltalsuttryck för heltalskonstanter. Booleska uttryck som kan beräknas vid kompilering för booleska typer. konstanter med ett tecken för teckentyper . och strängkonstanter för [sträng] typer. Typen void * kan endast initieras till NULL.

type-attribute-list

Anger ett eller flera attribut som gäller för typen.

pekartyp

Anger en giltig MIDL-pekartyp.

deklarator och deklaratorlista

Anger C-standarddeklaratorer, till exempel identifierare, pekardeklaratorer och matrisdeklaratorer. Mer information finns i Matriser och Sized-Pointer attribut, matriser och matriser och pekare. Deklaratorlistan består av en eller flera deklaratorer, avgränsade med kommatecken. Parameternamnidentifieraren i funktionsdeklaratorn är valfri.

function-attr-list

Anger noll eller fler attribut som gäller för funktionen. Giltiga funktionsattribut är [callback], [local]; pekarattributet [ref], [unique], eller [ptr]; och användningsattributen [string], [ignore], och [context_handle].

type-specifier

Anger en base_type, struct, union, uppräkningstyp eller typidentifierare. En valfri lagringsspecifikation kan föregå typspecificeraren.

ptr-decl

Anger noll eller fler pekardeklaratorer. En pekardeklarator är samma som pekardeklaratorn som används i C. Den är konstruerad från * designatorn, modifierare som långt, och kvalkondatorn.

function-name

Anger namnet på fjärrproceduren.

parameter-attribute-list

Anger noll eller fler riktningsattribut, fältattribut, användningsattribut och pekarattribut som är lämpliga för den angivna parametertypen. Avgränsa flera attribut med kommatecken.

Anmärkningar

MED MIDL kan du deklarera konstanta heltal, tecken, strängar och booleska typer i gränssnittstexten i IDL-filen. Deklarationer av const-typ återges i den genererade huvudfilen som #define direktiv.

DCE IDL-kompilatorer stöder inte konstanta uttryck. Därför är den här funktionen inte tillgänglig när du använder MIDL-kompilatorn /osf-växeln .

En tidigare definierad konstant kan användas som det tilldelade värdet för en efterföljande konstant. Värdet för ett konstant integraluttryck konverteras automatiskt till respektive heltalstyp i enlighet med C-konverteringsregler.

Värdet för en teckenkonstant måste vara ett ASCII-tecken med en citattecken. När teckenkonstanten är själva tecknet med ett citattecken (') måste omvänt snedstreck (\) föregå det enkla citattecknet, som i \'.

Värdet för en teckensträngskonstant måste vara en dubbelciterad sträng. Inom en sträng måste tecknet omvänt snedstreck (\) föregå ett literalt dubbelcitattecken ( " ), som i \". Inom en sträng representerar omvänt snedstreck (\) ett escape-tecken. Strängkonstanter kan bestå av upp till 255 tecken.

Värdet NULL är det enda giltiga värdet för konstanter av typen void *. Attribut som är associerade med const-deklarationen ignoreras.

MIDL-kompilatorn söker inte efter intervallfel i const-initieringen . När du till exempel anger "const short x = 0xFFFFFFFF;" rapporterar MIDL-kompilatorn inget fel och initieraren återskapas i den genererade huvudfilen.

Exempel

const void *  p1        = NULL; 
const char    my_char1  = 'a'; 
const char    my_char2  = my_char1; 
const wchar_t my_wchar3 = L'a'; 
const wchar_t * pszNote = L"Note"; 
const unsigned short int x = 123; 
 
typedef [string] const char *LPCSTR; 
 
HRESULT GetName([out] wchar_t * const pszName );

Se även

Matriser

MIDL-bastyper

Boolean

byte

Motringning

röding

context_handle

Enum

IDL-fil (Interface Definition)

Ignorera

Lokala

Lång

/Fos

Ptr

Referens

Kort

Undertecknat

Liten

Sträng

Struct

Unionen

Unik

Osignerade

Void

wchar_t