Namespaces
Variants

C23

From cppreference.net
< c

ISO/IEC 9899:2024 , auch bekannt als C23 , ist die aktuelle Revision des C-Standards.

C23 erhöht den vordefinierten Makro __STDC_VERSION__ auf 202311L .

Inhaltsverzeichnis

Neue Sprachfunktionen

Feature-Test-Makros für optionale Funktionen

Neue Bibliotheksfunktionen

Neue Header

Bibliotheksfunktionen

Veraltete Funktionen

Entfernte Funktionen

Veraltete Funktionen

Fehlerberichte

Fehlerberichte behoben in C23 (? Fehler)

Compiler-Unterstützung

C23-Kernsprachfunktionen

**Übersetzte Elemente:** - "Attributes" → "Attribute" (im Link-Text) - "Yes" → "Ja" (in der Tabelle) **Beibehaltene Elemente:** - Alle HTML-Tags und Attribute - Dokumentennummern N2335 und N2554 - Versionsnummern und technische Bezeichnungen - Zahlenwerte - "clang based" (technischer Begriff) **Übersetzungserläuterungen:** - "character constants" wurde als "Zeichenkonstanten" übersetzt (fachlich korrekter C++-Begriff) - ` u8 ` wurde nicht übersetzt (wie angefordert) - HTML-Tags, Attribute und numerische Werte wurden unverändert beibehalten - "N2418" (Dokumentenreferenz) wurde nicht übersetzt - Alle Formatierungen und Tabellenstrukturen wurden exakt erhalten **Übersetzte Texte:** - "in preprocessor conditionals" → "in Präprozessor-Bedingungen" - "Yes" → "Ja" **Beibehalten:** - HTML-Tags und Attribute - ` __has_c_attribute ` (C++ spezifischer Begriff) - "N2553" (Dokumentenreferenz) - Numerische Werte und Versionsnummern - Formatierung und Tabellenstruktur **Änderungen:** - "and" wurde zu "und" übersetzt - Alle HTML-Tags, Attribute und Code-Blöcke wurden unverändert beibehalten - C++-spezifische Begriffe (#elifdef, #elifndef, N2645) wurden nicht übersetzt - Die Formatierung und Struktur der Tabelle bleibt vollständig erhalten **Übersetzungsdetails:** - "Yes" wurde konsequent zu "Ja" übersetzt - HTML-Tags, Attribute und Formatierung wurden unverändert beibehalten - C++-spezifische Begriffe (`#warning`, `N2686`) wurden nicht übersetzt - Numerische Werte (6.5) blieben unverändert - Leere Tabellenzellen wurden nicht modifiziert **Anmerkung:** In diesem HTML-Fragment gibt es keine zu übersetzenden Textelemente, da: - Der Text innerhalb der ` `-Tags (einschließlich "noreturn") nicht übersetzt werden soll - "N2764" ist ein Dokumentenbezeichner und wird nicht übersetzt - Die numerischen Werte (13, 15, 6.5, 2022.2) werden nicht übersetzt - Alle HTML-Tags und Attribute bleiben unverändert Daher bleibt das gesamte Fragment in seiner ursprünglichen Form erhalten. **Änderungen:** - "and" wurde zu "und" übersetzt - Alle HTML-Tags, Attribute und Code-Inhalte wurden unverändert beibehalten - C++-spezifische Begriffe ("unsequenced", "reproducible") wurden nicht übersetzt - Die numerischen Werte und Formatierung bleiben erhalten **Übersetzungsdetails:** - "objects" wurde zu "Objekte" übersetzt - `constexpr` wurde nicht übersetzt (C++-spezifischer Begriff) - HTML-Tags, Attribute und numerische Werte wurden unverändert beibehalten - Die Formatierung und Struktur wurde exakt erhalten **Anmerkung:** Da der vorgegebene Text keine übersetzbaren Inhalte außerhalb der geschützten Tags enthält (HTML-Tags, Attribute, ` `-Tags und C++-spezifische Begriffe bleiben unverändert), wurde die ursprüngliche Struktur beibehalten. Die numerischen Werte und der Dokumentenname "N3033" wurden nicht übersetzt, da sie technische Referenzen darstellen.
C23-Funktion

Dokument(e)

GCC
Clang
MSVC
Apple Clang
EDG eccp
Intel C++
Nvidia HPC C++ (ex PGI)*
Nvidia nvcc
Cray
static_assert ohne Nachricht N2265 9 9 Ja Ja 6.5 2021.1.2 (clang based)
[[ nodiscard ]] N2267 10 9 Ja 6.4 2021.1.2 (clang based)
[[ maybe_unused ]] N2270 10 9 Ja 6.4 2021.1.2 (clang based)
[[ deprecated ]] N2334 10 9 Ja 6.4 2021.1.2 (clang basiert)
Attribute N2335
N2554
10 9 Ja 6.4 2021.1.2 (clang based)
IEEE 754 Dezimal-Gleitkommatypen N2341 4.2 (teilweise)*
12
13.0 (teilweise)*
[[ fallthrough ]] N2408 10 9 Ja 6.4 2021.1.2 (clang basiert)
u8 Zeichenkonstanten N2418 10 15 6.5 2022.2
Entfernung von Funktionsdefinitionen ohne Prototyp N2432 10 15 2022.2
[[ nodiscard ]] mit Nachricht N2448 11 10 Ja 6.4 2021.1.2 (clang based)
Unbenannte Parameter in Funktionsdefinitionen N2480 11 11 Ja 6.4 2021.1.2 (clang based)
Labels vor Deklarationen und Ende von Blöcken N2508 11 16 Teilweise* 6.5 17.0 *
Binäre Ganzzahlkonstanten N2549 4.3 *
11
2.9 *
9
19.0 (2015)* * Ja 6.5 11.0 *
__has_c_attribute in Präprozessor-Bedingungen N2553 11 9 Ja 6.5 2021.1.2 (clang based)
Doppelte Attribute erlauben N2557 11 13 Ja 6.5 2021.4 (clang-based
IEEE 754 Austausch- und erweiterte Typen N2601 7 (teilweise)*
14
6 (teilweise)* Teilweise*
Zifferntrennzeichen N2626 12 13 19.0 (2015)* * Ja 6.5 18.0 *
#elifdef und #elifndef N2645 12 13 19.40* 13.1.6* 6.5 2021.4
Typänderung von u8 String-Literalen N2653 13
[[ maybe_unused ]] für Labels N2662 11 16 6.5 2022.2
#warning N2686 Ja Ja Ja 6.5 Ja
Bit-genaue Ganzzahltypen ( _BitInt ) N2763 14 (teilweise)* 15 6.5 2022.2
[[ noreturn ]] N2764 13 15 6.5 2022.2
Suffixe für bitgenaue Integer-Konstanten N2775 14 15 2022.2
__has_include in Präprozessor-Bedingungen N2799 5 Ja 19.11* Ja 6.5 18.0
Bezeichnersyntax unter Verwendung des Unicode-Standard-Anhangs 31 N2836 13 15 6.5 2022.2
Entfernung von Funktionsdeklarationen ohne Prototyp N2841 13 15 2022.2
Leere Initialisierer N2900 Teilweise*
13
Teilweise* Teilweise* Teilweise* Teilweise*
typeof und typeof_unqual N2927
N2930
Teilweise*
13
Teilweise*
16
19.39* Teilweise* Teilweise* Teilweise* Teilweise*
Neue Schreibweise von Schlüsselwörtern N2934 13 16 6.5
Vordefinierte true und false N2935 13 15 2022.2
[[ unsequenced ]] und [[ reproducible ]] N2956 15
Anforderungen für variadische Parameterliste lockern N2975 13 16 6.5 2023.1
Typrückschluss bei Objektdefinitionen N3007 13 18
#embed N3017 15 19
constexpr Objekte N3018 13 19
Verbesserte Normale Aufzählungen N3029 13 20 *
Aufzählungen mit festgelegten zugrundeliegenden Typen N3030 13 20 *
__VA_OPT__ N3033 8
13
12 19.39* 6.5
Speicherklassenspezifizierer für zusammengesetzte Literale N3038 13
nullptr N3042 13 16


C23-Funktion


Dokument(e)
GCC
Clang
MSVC
Apple Clang
EDG eccp
Intel C++
Nvidia HPC C++ (ex PGI)*
Nvidia nvcc
Cray

C23-Bibliotheksfunktionen