nullptr_t
|
Definiert im Header
<stddef.h>
|
||
|
typedef
typeof
(
nullptr
)
nullptr_t
;
|
(seit C23) | |
nullptr_t
ist der Typ der vordefinierten Nullzeigerkonstante
nullptr
. Es handelt sich um einen eigenständigen Typ, der selbst kein Zeigertyp ist. Er kann
implizit konvertiert
werden zu jedem Zeigertyp oder
bool
, und das Ergebnis ist der Nullzeigerwert dieses Typs oder
false
entsprechend. Kein anderer Typ als
nullptr_t
selbst kann zu
nullptr_t
konvertiert oder explizit gecastet werden.
sizeof ( nullptr_t ) und alignof ( nullptr_t ) sind gleich sizeof ( void * ) beziehungsweise alignof ( void * ) .
nullptr_t
hat nur einen gültigen Wert, nämlich
nullptr
. Die Objektdarstellung von
nullptr
ist identisch mit der von
(
void
*
)
0
. Wenn eine
Lvalue-Konvertierung
einen
nullptr_t
-Wert mit einer anderen Objektdarstellung erzeugt, ist das Verhalten undefiniert.
Beispiel
Demonstrieren Sie, dass
nullptr_t
ein eigener Typ ist.
#include <stddef.h> #include <stdio.h> #define DETECT_NULL_POINTER_CONSTANT(e) \ _Generic(e, \ void* : puts("void*"), \ nullptr_t : puts("nullptr_t"), \ default : puts("other") \ ) int main() { DETECT_NULL_POINTER_CONSTANT(((void*)0)); DETECT_NULL_POINTER_CONSTANT(0); DETECT_NULL_POINTER_CONSTANT(nullptr); }
Ausgabe:
void* other nullptr_t
Referenzen
- C23-Standard (ISO/IEC 9899:2024):
-
- 7.21.2 Der nullptr_t-Typ (S: 315-316)
Siehe auch
|
implementierungsdefinierte Nullzeigerkonstante
(Makrokonstante) |
|
|
C++-Dokumentation
für
nullptr_t
|
|