Freigeben über


const-Attribut

Das Schlüsselwort const ändert den Typ einer Typdeklaration oder den Typ eines Funktionsparameters und verhindert, dass der Wert unterschiedlich ist.

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 GANZZAHL-, Zeichen-, Zeichenfolgen- oder booleschen Typ an. Gültige MIDL-Typen umfassen kleine, kurze, lange, Zeichen, Zeichen *, wchar_t, wchar_t *, Byte, Byte *und void *. Die Ganzzahl- und Zeichentypen können signiert oder nicht signiert werden.

Bezeichner

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

const-expression

Gibt einen Ausdruck, einen Bezeichner oder eine numerische oder eine zeichenkonstante Konstante an, die für den angegebenen Typ geeignet ist: konstanten ganzzahligen Literale oder konstanten ganzzahligen Ausdrücken für ganzzahlige Konstanten; Boolesche Ausdrücke, die bei der Kompilierung für boolesche Typen berechnet werden können; Einzelzeichenkonstanten für Zeichentypen ; und Zeichenfolgenkonstanten für [Zeichenfolgen] -Typen. Der void * -Typ kann nur auf 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 Deklaratorliste

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, getrennt durch Kommas. 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 [callback], [local]; das Zeiger-Attribut [ref], [unique], oder [ptr]; und die Verwendungsattribute [string], [ignore], und [context_handle].

Typbezeichner

Gibt einen base_type, eine Struktur, eine Union, einen Enumerationstyp oder einen Typbezeichner an. Eine optionale Speicherspezifikation kann dem Typbezeichner vorangehen.

ptr-decl

Gibt null oder mehr Zeiger-Deklaratoren an. Ein Zeiger-Deklarator ist identisch mit dem in C verwendeten Zeiger-Deklarator. Sie wird aus dem * Kennzeichner, Modifizierern wie weit und dem Qualifizierer konstiert.

Funktionsname

Gibt den Namen der Remoteprozedur an.

parameter-attribute-list

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

Bemerkungen

MIDL ermöglicht es Ihnen, konstanten ganzzahligen, zeichenbasierten, Zeichenfolgen- und booleschen Typen im Schnittstellentext der IDL-Datei zu deklarieren. Const-Typdeklarationen werden in der generierten Headerdatei als #define Direktiven reproduziert.

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

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

Der Wert einer Zeichenkonstante muss ein in Anzeichen angegebenes ASCII-Zeichen sein.The value of a character constant must be a single-quoted ASCII character. Wenn es sich bei der Zeichenkonstante um das einfache Anführungszeichen selbst (') handelt, muss das umgekehrte Schrägstrichzeichen (\) wie in \' vor dem einfachen Anführungszeichen stehen.

Der Wert einer Zeichenfolgenkonstante muss eine doppelte Zeichenfolge sein. Innerhalb einer Zeichenfolge muss dem umgekehrten Schrägstrich (\) ein literales doppeltes Anführungszeichen ( " ) vorangestellt werden, wie in \". Innerhalb einer Zeichenfolge stellt das umgekehrte Schrägstrichzeichen (\) 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 nicht auf Bereichsfehler bei der Konstinitialisierung . Wenn Sie z. B. "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 );

Siehe auch

Arrays

MIDL-Basistypen

Boolescher Wert

Byte

Rückruf

Zeichen

context_handle

Enum

IdL-Datei (Interface Definition)

Ignorieren

lokal

Lange

/Osf

Ptr

Ref

kurz

Unterzeichnet

klein

Schnur

Struktur

Union

Einzigartige

Unsigned

Leere

Wchar_t