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