Attributo const

La parola chiave const modifica il tipo di una dichiarazione di tipo o il tipo di un parametro di funzione, impedendo la variazione del valore.

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

Parametri

const-type

Specifica un tipo integer MIDL, carattere, stringa o booleano valido. I tipi MIDL validi includono small, short, long, char *, wchar_t, wchar_t *, byte, byte *e void *. I tipi integer e carattere possono essere firmati o senza segno.

identifier

Specifica un identificatore MIDL valido. Gli identificatori MIDL validi sono costituiti da un massimo di 31 caratteri alfanumerici e/o caratteri di sottolineatura e devono iniziare con un carattere alfabetico o di sottolineatura.

const-expression

Specifica un'espressione, un identificatore o una costante numerica o carattere appropriata per il tipo specificato: valori letterali integer costanti o espressioni integer costanti per costanti integer; Espressioni booleane che possono essere calcolate durante la compilazione per i tipi booleani; costanti a carattere singolo per i tipi char; e costanti stringa per i tipi [string]. Il tipo void * può essere inizializzato solo su NULL.

type-attribute-list

Specifica uno o più attributi che si applicano al tipo.

tipo puntatore

Specifica un tipo di puntatore MIDL valido.

declarator e declarator-list

Specifica i dichiaratori C standard, ad esempio identificatori, dichiaratori di puntatore e dichiaratori di matrice. Per altre informazioni, vedere Array e Sized-Pointer Attributi, matrici e matricie puntatori. L'elenco dichiaratore è costituito da uno o più dichiaratori, separati da virgole. L'identificatore del nome parametro nel dichiaratore di funzione è facoltativo.

function-attr-list

Specifica zero o più attributi che si applicano alla funzione. Gli attributi di funzione validi sono [callback], [local]; l'attributo puntatore [ref], [unique]o [ptr]; e gli attributi di utilizzo [string], [ignore], e [context_handle].

type-specifier

Specifica un base_type, uno struct, un'unione, un tipo di enumerazione o un identificatore di tipo. Una specifica di archiviazione facoltativa può precedere l'identificatore di tipo.

ptr-decl

Specifica zero o più dichiaratori del puntatore. Un dichiaratore di puntatore è lo stesso del dichiaratore del puntatore usato in C. Viene costruito dal * designatore, dai modificatori, ad esempio da lontano, e dal qualificatore const.

function-name

Specifica il nome della routine remota.

parameter-attribute-list

Specifica zero o più attributi direzionali, attributi di campo, attributi di utilizzo e attributi puntatore appropriati per il tipo di parametro specificato. Separare più attributi con virgole.

Commenti

MIDL consente di dichiarare tipi integer costanti, carattere, stringa e booleani nel corpo dell'interfaccia del file IDL. Le dichiarazioni di tipo Const vengono riprodotte nel file di intestazione generato come direttive #define.

I compilatori IDL DCE non supportano espressioni costanti. Pertanto, questa funzionalità non è disponibile quando si usa l'opzione /osf del compilatore MIDL.

Una costante definita in precedenza può essere utilizzata come valore assegnato di una costante successiva. Il valore di un'espressione integrale costante viene convertito automaticamente nel rispettivo tipo integer in base alle regole di conversione C.

Il valore di una costante carattere deve essere un carattere ASCII tra virgolette singole. Quando la costante carattere è il carattere a virgoletta singola stessa ('), il carattere barra rovesciata (\) deve precedere il carattere a virgoletta singola, come in \'.

Il valore di una costante stringa di caratteri deve essere una stringa tra virgolette doppie. All'interno di una stringa, il carattere barra rovesciata (\) deve precedere un carattere di virgoletta doppia letterale ( " ), come in \". All'interno di una stringa, il carattere barra rovesciata (\) rappresenta un carattere di escape. Le costanti stringa possono essere costituite da un massimo di 255 caratteri.

Il valore NULL è l'unico valore valido per le costanti di tipo void *. Tutti gli attributi associati alla dichiarazione const vengono ignorati.

Il compilatore MIDL non verifica la presenza di errori di intervallo nell'inizializzazione const . Ad esempio, quando si specifica "const short x = 0xFFFFFFFF;" il compilatore MIDL non segnala un errore e l'inizializzatore viene riprodotto nel file di intestazione generato.

Esempi

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

Vedere anche

Matrici

Tipi di base MIDL

Boolean

byte

callback

Char

context_handle

Enum

File IDL (Interface Definition)

Ignorare

Locale

Lungo

/Osf

Ptr

Ref

short

Firmato

Piccolo

string

Struct

Unione

Unico

Unsigned

void

wchar_t