const-Attribut

Das schlüsselwort const ändert den Typ einer Typdeklaration oder den Typ eines Funktionsparameters, sodass der Wert nicht variiert.

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

Parameter

const-type

Gibt eine gültige MIDL-Ganzzahl, ein gültiges Zeichen, eine Zeichenfolge oder einen booleschen Typ an. Gültige MIDL-Typen umfassen kleine, kurze, lange, char, ** char , _ wchar _ t *, *wchar _ * tÂ, _ byte *, *byte * _, und void". * Die Ganzzahl- und Zeichentypen können _signed * oder unsignedsein.

identifier

Gibt einen gültigen MIDL-Bezeichner an. Gültige MIDL-Bezeichner bestehen aus bis zu 31 alphanumerischen Zeichen und/oder Unterstrichen und müssen mit einem Alphabet- oder Unterstrich beginnen.

const-expression

Gibt einen Ausdruck, einen Bezeichner oder eine numerische oder Zeichenkonstante an, die für den angegebenen Typ geeignet ist: konstante ganzzahlige Literale oder konstante ganzzahlige Ausdrücke für ganzzahlige Konstanten; Boolesche Ausdrücke, die bei der Kompilierung für boolesche Typen berechnet werden können. Einzelzeichenkonstanten für Char-Typen; und Zeichenfolgenkonstanten für [ ] Zeichenfolgentypen. Der * void * _-Typ kann nur mit _NULL* initialisiert werden.

type-attribute-list

Gibt ein oder mehrere Attribute an, die für den Typ gelten.

Zeigertyp

Gibt einen gültigen MIDL-Zeigertyp an.

deklarator und declarator-list

Gibt C-Standarddeklaratoren an, z. B. Bezeichner, Zeigerdeklaratoren und Arraydeklaratoren. Weitere Informationen finden Sie unter Array- und Sized-Pointer Attribute, Arraysund Arrays und Zeiger. Die Deklaratorliste besteht aus einem oder mehreren Deklaratoren, die durch Kommas getrennt sind. Der Parameternamenbezeichner im Funktionsdeklarator ist optional.

function-attr-list

Gibt null oder mehr Attribute an, die für die Funktion gelten. Gültige Funktionsattribute sind [ rückruf, ] [ local, ] das Zeigerattribut [ ref, ] [ eindeutigoder ] [ ptrund die ] Verwendungsattribute [ Zeichenfolge ] , [ ignorieren ] und [ _ Kontexthandle ] .

Typspezifizierer

Gibt einen _ Basistyp, eine Struktur, einen Union-, Enumerations- oder Typbezeichner an. Eine optionale Speicherspezifikation kann dem Typspezifizierer vorangestellt werden.

ptr-decl

Gibt null oder mehr Zeigerdeklaratoren an. Ein Zeigerdeklarator ist identisch mit dem in C verwendeten Zeigerdeklarator. Sie wird aus dem * _-Bezeichner, Modifizierern wie _ far und dem Qualifizierer const erstellt.

Funktionsname

Gibt den Namen der Remoteprozedur an.

parameter-attribute-list

Gibt null oder mehr direktionale Attribute, Feldattribute, Verwendungsattribute und Zeigerattribute an, die für den angegebenen Parametertyp geeignet sind. Trennen Sie mehrere Attribute durch Kommas.

Bemerkungen

MIT MIDL können Sie konstante integer-, character-, string- und boolean-Typen im Schnittstellentext der IDL-Datei deklarieren. Const-Typdeklarationen werden in der generierten Headerdatei als # define-Anweisungen reproduziert.

DCE-IDL-Compiler unterstützen keine konstanten Ausdrücke. Daher ist dieses Feature nicht verfügbar, wenn Sie den MIDL-Compilerschalter /osf verwenden.

Eine zuvor definierte Konstante kann als zugewiesener Wert einer nachfolgenden Konstante verwendet werden. Der Wert eines konstanten integralen Ausdrucks wird gemäß C-Konvertierungsregeln automatisch in den entsprechenden ganzzahligen Typ konvertiert.

Der Wert einer Zeichenkonstante muss ein ASCII-Zeichen mit einfachen Anführungszeichen sein. Wenn die Zeichenkonstante das einfache Anführungszeichen selbst (') ist, muss der umgekehrte Schrägstrich ( \ ) dem einfachen Anführungszeichen voranstehen, wie in \ ".

Der Wert einer Zeichenfolgenkonstante muss eine Zeichenfolge mit doppelten Anführungszeichen sein. Innerhalb einer Zeichenfolge muss der umgekehrte Schrägstrich ( \ ) einem literalen doppelten Anführungszeichen ( " ) vorangestellt werden, wie in \ ". Innerhalb einer Zeichenfolge stellt der umgekehrte Schrägstrich ( \ ) ein Escapezeichen dar. Zeichenfolgenkonstanten können aus bis zu 255 Zeichen bestehen.

Der Wert NULL ist der einzige gültige Wert für Konstanten vom Typ * void * _. Alle Attribute, die der *_const**-Deklaration zugeordnet sind, werden ignoriert.

Der MIDL-Compiler überprüft bei der const-Initialisierung nicht auf Bereichsfehler. Wenn Sie beispielsweise "const short x = 0xFFFFFFFF;" angeben, meldet der MIDL-Compiler keinen Fehler, und der Initialisierer wird in der generierten Headerdatei reproduziert.

Beispiele

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

Weitere Informationen

Arrays

MIDL-Basistypen

Boolean

Byte

Rückruf

char

_Kontexthandle

Enum

IDL-Datei (Interface Definition)

Ignorieren

lokal

long

/osf

Ptr

ref

short

Unterzeichnet

klein

Schnur

Struktur

union

Einzigartige

Unsigned

void

wchar _ t