Udostępnij za pośrednictwem


const, atrybut

Słowo kluczowe const modyfikuje typ deklaracji typu lub typ parametru funkcji, uniemożliwiając zmianę wartości.

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

typ const

Określa prawidłową liczbę całkowitą MIDL, znak, ciąg lub typ logiczny. Prawidłowe typy MIDL obejmują małe, krótkie, długie, char, char *, wchar_t, wchar_t *, bajt, bajt *i pustkę *. Typy liczb całkowitych i znaków mogą być podpisane lub niepodpisane.

identyfikator

Określa prawidłowy identyfikator MIDL. Prawidłowe identyfikatory MIDL składają się z maksymalnie 31 znaków alfanumerycznych i/lub podkreślenia i muszą zaczynać się od znaku alfabetycznego lub podkreślenia.

const-expression

Określa wyrażenie, identyfikator lub stałą liczbową lub znakową odpowiednią dla określonego typu: literały stałej liczby całkowitej lub wyrażenia stałej liczby całkowitej dla stałych stałych stałych; Wyrażenia logiczne, które można obliczyć podczas kompilacji dla typów logicznych; stałe jednoznaczne dla typów znaków; i stałe ciągów dla typów [string]. Typ void * można zainicjować tylko do wartości NULL.

type-attribute-list

Określa co najmniej jeden atrybut, który ma zastosowanie do typu.

typ wskaźnika

Określa prawidłowy typ wskaźnika MIDL.

deklarator i deklarator-lista

Określa standardowe deklaratory języka C, takie jak identyfikatory, deklaratory wskaźników i deklaratory tablicy. Aby uzyskać więcej informacji, zobacz Tablice i Sized-Pointer Atrybuty, tablice i tablice i wskaźniki. Lista deklaratorów składa się z co najmniej jednego deklaratora oddzielonego przecinkami. Identyfikator nazwy parametru w deklaratorze funkcji jest opcjonalny.

function-attr-list

Określa zero lub więcej atrybutów, które mają zastosowanie do funkcji. Prawidłowe atrybuty funkcji to [wywołanie zwrotne], [lokalne]; atrybut wskaźnika [ref], [unique]lub [ptr]; oraz atrybuty użycia [string], [ignoruj]i [context_handle].

specyfikator typu

Określa base_type, struktury, unii, typu wyliczenia lub identyfikatora typu. Opcjonalna specyfikacja magazynu może poprzedzać specyfikator typów.

ptr-decl

Określa zero lub więcej deklaratorów wskaźników. Deklarator wskaźnika jest taki sam jak deklarator wskaźnika używany w języku C. Jest zbudowany z projektanta * , modyfikatorów, takich jak daleko, i kwalifikatora const.

nazwa funkcji

Określa nazwę procedury zdalnej.

parametr-attribute-list

Określa zero lub więcej atrybutów kierunkowych, atrybutów pola, atrybutów użycia i atrybutów wskaźnika odpowiednich dla określonego typu parametru. Rozdziel wiele atrybutów przecinkami.

Uwagi

MidL umożliwia deklarowanie stałych liczb całkowitych, znaków, ciągów i wartości logicznych w treści interfejsu pliku IDL. Deklaracje typów Const są odtwarzane w wygenerowanych plikach nagłówka jako dyrektywy #define.

Kompilatory IDL dcE nie obsługują wyrażeń stałych. W związku z tym ta funkcja nie jest dostępna w przypadku korzystania z przełącznika /osf kompilatora MIDL.

Wcześniej zdefiniowana stała może być używana jako przypisana wartość kolejnej stałej. Wartość wyrażenia całkowitego stałej jest automatycznie konwertowana na odpowiedni typ całkowity zgodnie z regułami konwersji języka C.

Wartość stałej znaku musi być znakiem ASCII z pojedynczym cudzysłów. Gdy stała znaku jest znakiem pojedynczego cudzysłowu ('), znak ukośnika odwrotnego (\) musi poprzedzać znak pojedynczego cudzysłowu, tak jak w znaku \".

Wartość stałej ciąg-znak musi być ciągiem dwucytowym. W ciągu znak ukośnika odwrotnego (\) musi poprzedzać znak podwójnego cudzysłowu ( " ), jak w znaku \". W ciągu znak ukośnika odwrotnego (\) reprezentuje znak ucieczki. Stałe ciągów mogą składać się z maksymalnie 255 znaków.

Wartość NULL jest jedyną prawidłową wartością dla stałych typu void *. Wszystkie atrybuty skojarzone z deklaracją const są ignorowane.

Kompilator MIDL nie sprawdza błędów zakresu w inicjowaniu const . Na przykład po określeniu ciągu "const short x = 0xFFFFFFFF;" kompilator MIDL nie zgłasza błędu, a inicjator jest odtwarzany w wygenerowanym pliku nagłówka.

Examples

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

Zobacz także

Tablice

Typy podstawowe MIDL

Boolean

Bajtów

Wywołania zwrotnego

Char

context_handle

Enum

Plik definicji interfejsu (IDL)

Ignoruj

Lokalnych

Długi

/Osf

Ptr

Ref

Krótki

Podpisane

Małe

Ciąg

Struct

Unii

Unikatowy

Niepodpisane

Void

Wchar_t