Namespaces
Variants

C compiler support

From cppreference.net
< c

Inhaltsverzeichnis

C23-Funktionen

Beachten Sie, dass diese Liste sich ändern kann, während sich der Entwurf des C23/2x-Standards weiterentwickelt.

C23-Kernsprachfunktionen

**Änderungen:** - "Attributes" → "Attribute" (deutsche Übersetzung) - "Yes" → "Ja" (deutsche Übersetzung) **Nicht übersetzt:** - HTML-Tags und Attribute - Dokumentnummern (N2335, N2554) - Versionsnummern und technische Bezeichnungen - Leere Tabellenzellen - Zahlenwerte **Übersetzungserläuterungen:** - "Yes" wurde konsequent als "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 (`noreturn`) ein C++-spezifischer Begriff ist und nicht übersetzt werden soll - `N2764` ein Dokumentenbezeichner ist - Die numerischen Werte (13, 15, 6.5, 2022.2) nicht übersetzt werden müssen - Alle anderen Zellen leer sind Das HTML-Markup, die Attribute und die Struktur bleiben vollständig erhalten. **Änderungen:** - "and" wurde zu "und" übersetzt - HTML-Tags, Attribute und Code-Inhalte wurden unverändert beibehalten - C++-spezifische Begriffe ("unsequenced", "reproducible") wurden nicht übersetzt - Formatierung und Struktur wurden vollständig erhalten **Anmerkung:** In diesem HTML-Fragment gibt es keinen zu übersetzenden Text, da: - `__VA_OPT__` innerhalb von ` `-Tags steht und daher nicht übersetzt wird - `N3033` ist ein Dokumentenbezeichner und wird nicht übersetzt - Alle numerischen Werte und Abkürzungen bleiben unverändert - Die HTML-Tags und Attribute wurden gemäß Anweisung beibehalten **Anmerkung:** In diesem HTML-Abschnitt gibt es keine zu übersetzenden Textelemente, da: - `nullptr` ein C++-spezifischer Begriff ist und nicht übersetzt wird - `N3042` ein Dokumentenbezeichner ist - Die Zahlenwerte (13, 16) numerische Daten darstellen - Alle anderen Zellen leer sind Die HTML-Struktur, Tags, Attribute und Formatierung wurden vollständig beibehalten.
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-basiert
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

C99-Funktionen

C99-Kernsprachfunktionen

**Übersetzungserläuterungen:** - "comments" → "Kommentare" (fachlich korrekte Übersetzung für C++ Kommentare) - "Yes" → "Ja" (Standardübersetzung für Ja/Nein-Tabellen) - HTML-Tags, Attribute und der Code-Bereich ` // ` wurden unverändert belassen - N644 (Dokumentenreferenz) wurde nicht übersetzt - Alle Formatierungen und Tabellenstrukturen wurden beibehalten **Änderungen:** - "types" → "Typen" - "Yes" → "Ja" - "Variable-length array" bleibt unverändert (C++-spezifischer Begriff) - HTML-Tags, Attribute und numerische Werte bleiben unverändert - Formatierung und Struktur wurden beibehalten **Übersetzungsdetails:** - "Hexadecimal" → "Hexadezimale" (technischer Begriff für hexadezimale Darstellung) - "floating constants" → "Gleitkommakonstanten" (Standard-Übersetzung für floating-point constants) - "Yes" → "Ja" (deutsche Entsprechung für Ja/Nein-Angaben) - HTML-Tags, Attribute und numerische Werte wurden unverändert beibehalten - Der Titel-Attribut wurde nicht übersetzt (gemäß Anforderung) **Übersetzungsdetails:** - "Variadic macros" → "Variadische Makros" (technischer Fachbegriff) - "Yes" → "Ja" (Standardübersetzung für Bestätigung) - HTML-Tags, Attribute und Formatierung wurden unverändert beibehalten - C++-spezifische Begriffe wurden nicht übersetzt - Numerische Werte und Links wurden unverändert gelassen
C99-Funktion

Dokument(e)

GCC
Clang
MSVC
Apple Clang
EDG eccp
Intel C++
Nvidia HPC C++ (ex PGI)*
Nvidia nvcc
Cray
Universal-character-names in Bezeichnern 3.1 Ja Ja
Erhöhte Übersetzungslimits N590 0.9 N/A
// Kommentare N644 2.7 Ja Ja
restrict Zeiger N448 2.95 Ja teilweise *
Erweiterte arithmetic types N815
N601
N620
N638
N657
N694
N809
Ja teilweise Vielleicht
Flexible Array-Member 3.0 Ja Ja
Variable-length array (VLA) Typen N683 0.9 Ja
Variably-modified (VM) Typen N2778 N/A Ja
Designierte Initialisierer N494 3.0 Ja Ja
Nicht-konstante Initialisierer 1.21 N/A
Idempotente cvr-Qualifizierer N505 3.0 N/A
Nachgestelltes Komma in enumerator-list 0.9 Ja Ja
Hexadezimale Gleitkommakonstanten N308 2.8 Ja Ja
Verbundliterale N716 3.1 Ja Ja
Gleitkomma-Umgebung teilweise teilweise
Erforderung der Abschneidung für Divisionen von vorzeichenbehafteten Ganzzahltypen N617 0.9 N/A
Implizites return 0 ; in der main() Funktion Ja Ja Ja
Deklarationen und Anweisungen in gemischter Reihenfolge N740 3.0 Ja Ja
init-statement in for Schleifen Ja Ja Ja
inline Funktionen N741 4.3 Ja Ja
Vordefinierte Variable __func__ N611 2.95 Ja Ja
Cvr-Qualifizierer und static in [ ] innerhalb von Funktionsdeklarationen 3.1 Ja
Variadische Makros N707 2.95 Ja Ja
_Pragma Präprozessor-Operator N634 3.0 Ja teilweise *
Standard-Pragmen für Gleitkomma-Auswertung N631
N696
Nein Nein


C99-Funktion


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


Siehe auch

C++ Dokumentation für Compiler-Unterstützung