const-Attribut
Die const Schlüsselwort (keyword) ändert den Typ einer Typdeklaration oder den Typ eines Funktionsparameters, wodurch verhindert wird, dass der Wert 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 einen gültigen ganzzahligen MIDL-, Zeichen-, Zeichenfolgen- oder booleschen Typ an. Gültige MIDL-Typen sind small, short, long, char, charâ *, wchar_t, wchar_t *, byte, byteâ*, und voidâ *. Die Ganzzahl- und Zeichentypen können signiert oder unsigniert sein.
-
identifier
-
Gibt einen gültigen MIDL-Bezeichner an. Gültige MIDL-Bezeichner bestehen aus bis zu 31 alphanumerischen und/oder unterstrichenen Zeichen und müssen mit einem Alphabet- oder Unterstrichzeichen 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; Einzeichenkonstanten für Char-Typen ; und Zeichenfolgenkonstanten für [Zeichenfolgen] -Typen. Der void * -Typ kann nur mit NULL initialisiert werden.
-
type-attribute-list
-
Gibt mindestens ein Attribut an, das für den Typ gilt.
-
Zeigertyp
-
Gibt einen gültigen MIDL-Zeigertyp an.
-
deklarator und deklarator-list
-
Gibt Standard-C-Deklaratoren an, z. B. Bezeichner, Zeiger-Deklaratoren und Array-Deklaratoren. Weitere Informationen finden Sie unter Array- und Sized-Pointer Attribute, Arrays und Arrays und Zeiger. Die Deklaratorliste besteht aus einem oder mehreren Deklaratoren, die durch Kommas getrennt sind. Der Parameternamebezeichner 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], [lokal]; das Zeigerattribute [ref], [unique] oder [ptr]; und die Verwendungsattribute [Zeichenfolge], [ignorieren] und [context_handle].
-
Typspezifizierer
-
Gibt einen base_type, eine Struktur, eine Union, einen Enumerationstyp oder einen Typbezeichner an. Eine optionale Speicherspezifikation kann dem Typbezeichner vorangestellt werden.
-
ptr-decl
-
Gibt null oder mehr Zeiger-Deklaratoren an. Ein Zeigerdeklarations-Deklarator ist mit dem in C verwendeten Zeiger-Deklarator identisch. Es 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 Richtungsattribute, Feldattribute, Nutzungsattribute und Zeigerattribute an, die für den angegebenen Parametertyp geeignet sind. Trennen Sie mehrere Attribute durch Kommas.
Bemerkungen
MIT MIDL können Sie konstante ganzzahlige, zeichen-, zeichenfolgen- und boolesche 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-Compiler /osf-Schalter 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 jeweiligen ganzzahligen Typ konvertiert.
Der Wert einer Zeichenkonstante muss ein ASCII-Zeichen mit einzeler Anführungszeichen sein. Wenn die Zeichenkonstante das Einfache Anführungszeichen selbst ist ('), muss der umgekehrte Schrägstrich (\) dem Anführungszeichen vorangestellt werden, wie in \'.
Der Wert einer Zeichenfolgenkonstante muss eine Zeichenfolge mit doppeltem Anführungszeichen sein. Innerhalb einer Zeichenfolge muss der umgekehrte Schrägstrich (\) einem Literalzeichen mit doppeltem Anführungszeichen ( " ) wie in \" vorangestellt werden. 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 sucht 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