Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
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