const – atribut

Klíčové slovo const upravuje typ deklarace typu nebo typ parametru funkce, což brání tomu, aby se hodnota liší.

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], ...);

Parametry

const-type

Určuje platné celé číslo, znak, řetězec nebo logický typ MIDL. Platné typy MIDL zahrnují malé, krátké, dlouhé, char, znak *, wchar_t, wchar_t *, bajt, bajt *a void *. Celé číslo a typy znaků mohou být podepsány nebo bez znaménka.

identifikátor

Určuje platný identifikátor MIDL. Platné identifikátory MIDL se skládají z až 31 alfanumerických a/nebo podtržítků a musí začínat abecedním nebo podtržítkem.

const-expression

Určuje výraz, identifikátor nebo číselnou nebo znakovou konstantu odpovídající zadanému typu: celočíselné literály konstanty nebo celočíselné výrazy pro celočíselné konstanty; Logické výrazy, které lze vypočítat při kompilaci pro logické typy; jednoznakové konstanty pro typy znaků; a řetězcové konstanty pro typy [string]. Typ void * lze inicializovat pouze na hodnotu NULL.

type-attribute-list

Určuje jeden nebo více atributů, které se vztahují na typ.

pointer-type

Určuje platný typ ukazatele MIDL.

deklarátor a seznam deklarátoru

Určuje standardní deklarátory jazyka C, jako jsou identifikátory, deklarátory ukazatele a deklarátory polí. Další informace naleznete v tématu Pole a Sized-Pointer Atributy, matice a matice a ukazatele. Deklarátor-seznam se skládá z jednoho nebo více deklarátorů oddělených čárkami. Identifikátor názvu parametru v deklarátoru funkce je volitelný.

function-attr-list

Určuje nula nebo více atributů, které se vztahují na funkci. Platné atributy funkce jsou [zpětné volání], [local]; atribut ukazatele [odkaz], [unique] nebo [ptr]; a atributy použití [string], [ignore] a [context_handle].

Specifikátor typů

Určuje base_type, strukturu, sjednocení, typ výčtu nebo identifikátor typu. Volitelná specifikace úložiště může předcházet specifikátoru typu.

ptr-decl

Určuje deklarátory nuly nebo více ukazatelů. Deklarátor ukazatele je stejný jako deklarátor ukazatele použitý v jazyce C. Je sestaven z návrhátoru * , modifikátorů, jako je daleko, a kvalifikátoru const.

function-name

Určuje název vzdálené procedury.

parameter-attribute-list

Určuje nula nebo více směrových atributů, atributů polí, atributů použití a atributů ukazatelů vhodných pro zadaný typ parametru. Oddělte více atributů čárkami.

Poznámky

MIDL umožňuje deklarovat konstantní celé číslo, znak, řetězec a logické typy v těle rozhraní souboru IDL. Deklarace typu Const jsou reprodukovány ve vygenerovaném souboru hlaviček jako direktivy #define.

Kompilátory IDL jazyka DCE nepodporují konstantní výrazy. Tato funkce proto není k dispozici, pokud použijete přepínač kompilátoru MIDL /osf .

Dříve definovanou konstantu lze použít jako přiřazenou hodnotu následující konstanty. Hodnota konstantního celočíselného výrazu se automaticky převede na odpovídající celočíselný typ v souladu s pravidly převodu jazyka C.

Hodnota znakové konstanty musí být jedno citovaný znak ASCII. Pokud je znakovou konstantou samotný znak jednoduché uvozovky ('), musí znak zpětného lomítka (\) před znak jednoduché uvozovky, jak je uvedeno v \.

Hodnota konstanty znakového řetězce musí být řetězec s dvojitou uvozovou sadou. V řetězci musí znak zpětného lomítka (\) předcházet literálu znak dvojité uvozovky ( " ), jako v \". V řetězci znak zpětného lomítka (\) představuje řídicí znak. Řetězcové konstanty můžou obsahovat až 255 znaků.

Hodnota NULL je jedinou platnou hodnotou pro konstanty typu void *. Všechny atributy přidružené k deklaraci const jsou ignorovány.

Kompilátor MIDL nekontroluje chyby rozsahu v inicializaci const . Pokud například zadáte "const short x = 0xFFFFFFFF;" kompilátor MIDL neohlásí chybu a inicializátor se reprodukuje v generovaném souboru hlaviček.

Příklady

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

Viz také

Pole

Základní typy MIDL

Boolean

Bajt

Zpětného volání

znak

context_handle

Výčtu

Soubor definice rozhraní (IDL)

Ignorovat

Místní

Dlouhé

/Osf

Ptr

Ref

Krátké

Podepsané

Malé

Řetězec

Struct

Unie

Jedinečný

Nepodepsané

Void

Wchar_t