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

Arrays

MIDL-Basistypen

Boolean

Byte

Rückruf

Char

context_handle

Enum

IDL-Datei (Interface Definition)

Ignorieren

lokal

Lange

/Osf

Ptr

Ref

kurz

Unterzeichnet

klein

Schnur

Struktur

union

Einzigartige

Unsigned

Leere

wchar_t