C++-Schlüsselwörter
Schlüsselwörter sind vordefinierte, reservierte Bezeichner, die besondere Bedeutungen haben. Sie können in einem Programm nicht als Bezeichner verwendet werden. Die folgenden Schlüsselwörter sind für Microsoft C++ reserviert. Namen mit vorangestellten Unterstrichen sind Microsoft-Erweiterungen.
__box 2 |
||
__gc 2 |
||
__hook 3 |
||
__nogc 2 |
||
__pin 2 |
||
__sealed 2 |
||
__unhook 3 |
||
__value 2 |
||
naked 1 |
||
noinline 1 |
noreturn 1 |
|
nothrow 1 |
novtable 1 |
|
property 1 |
||
thread 1 |
||
uuid 1 |
||
1 Erweiterte Attribute für das __declspec-Schlüsselwort.
2 Gültig nur für Managed Extensions for C++. Diese Syntax ist inzwischen veraltet.
3 In der Ereignisbehandlung verwendete systeminterne Funktion.
Weitere Informationen finden Sie unter Komponentenerweiterungen für Laufzeitplattformen.
Microsoft-spezifisch
In Microsoft C++ sind Bezeichner mit zwei vorangehenden Unterstrichen für Compilerimplementierungen reserviert. Daher werden gemäß Microsoft-Konvention Microsoft-spezifischen Schlüsselwörtern doppelte Unterstriche vorangestellt. Diese Wörter können nicht als Bezeichnernamen verwendet werden.
Standardmäßig sind Microsoft-Erweiterungen aktiviert. Um sicherzustellen, dass Ihre Programme vollständig portabel sind, können Sie Microsoft-Erweiterungen deaktivieren, indem Sie die ANSI-kompatible /Za-Befehlszeilenoption (Kompilieren für ANSI-Kompatibilität) während der Kompilierung angeben. Dabei werden Microsoft-spezifische Schlüsselwörter deaktiviert.
Wenn Microsoft-Erweiterungen aktiviert sind, können Sie Microsoft-spezifische Schlüsselwörter in Programmen verwenden. Zur Einhaltung der ANSI-Kompatibilität wird diesen Schlüsselwörtern ein doppelter Unterstrich vorangestellt. Aus Gründen der Abwärtskompatibilität werden Versionen mit einzelnen Unterstrichen von allen Schlüsselwörtern mit doppelten Unterstrichen außer __except, __finally, __leave und __try unterstützt. Außerdem ist __cdecl ohne vorangehenden Unterstrich verfügbar.
Das __asm-Schlüsselwort ersetzt die asm-Syntax von C++. asm ist für die Kompatibilität mit anderen C++-Implementierungen reserviert, jedoch nicht implementiert. Verwenden Sie __asm.
Das __based-Schlüsselwort weist eingeschränkte Verwendung für 32-Bit- und 64-Bit-Zielkompilierungen auf.