Conformance
Konformität hat eine dreifache Definition:
- strictly conforming program - verwendet ausschließlich wohldefinierte Sprachkonstrukte, also Konstrukte mit einem einzigen Verhalten. Es schließt nicht spezifiziertes, undefiniertes oder implementierungsdefiniertes Verhalten aus und überschreitet keine minimalen Implementierungsgrenzen.
- conforming program - für eine konforme Implementierung akzeptabel.
-
conforming implementation
-
- Eine konforme Hosted-Implementierung muss jedes streng konforme Programm akzeptieren.
- Eine konforme Freestanding-Implementierung muss jedes streng konforme Programm akzeptieren, in dem die Verwendung der in der Bibliotheksklausel (Klausel 7) spezifizierten Merkmale auf die Inhalte der Freestanding-Standardbibliotheksheader beschränkt ist (siehe unten).
- Eine konforme Implementierung kann Erweiterungen haben (einschließlich zusätzlicher Bibliotheksfunktionen), sofern sie das Verhalten eines streng konformen Programms nicht verändern.
Inhaltsverzeichnis |
Erklärung
Der Standard definiert keine Mindestimplementierungsgrenze für Übersetzungseinheiten. Eine gehostete Umgebung verfügt über ein Betriebssystem; eine eigenständige Umgebung nicht. Ein Programm, das in einer gehosteten Umgebung läuft, kann alle im Bibliotheksabschnitt (Abschnitt 7) beschriebenen Funktionen verwenden; ein Programm, das in einer eigenständigen Umgebung läuft, kann eine Teilmenge der in Abschnitt 4 vorgeschriebenen Bibliotheksfunktionen verwenden.
Freistehende Standardbibliothek-Header
Alle Standardbibliothek-Funktionen in jedem vollständig freistehenden Header müssen von einer freistehenden Implementierung bereitgestellt werden.
|
Einige Standardbibliothek-Header sind bedingt freistehend.
Einige Standardbibliothek-Header sind teilweise freistehend.
|
(seit C23) |
Vollständig freistehende Standardbibliotheks-Header |
|
| <float.h> | Grenzwerte der Gleitkommatypen |
| <iso646.h> (seit C95) | Alternative Operatorschreibweisen |
| <limits.h> | Wertebereiche der Ganzzahltypen |
| <stdalign.h> (seit C11) |
alignas
und
alignof
Hilfsmakros
|
| <stdarg.h> | Variable Argumente |
| <stdbool.h> (seit C99) | Makros für den booleschen Typ |
| <stddef.h> | Allgemeine Makrodefinitionen |
| <stdint.h> (seit C99) | Festbreiten-Ganzzahltypen |
| <stdnoreturn.h> (seit C11) | noreturn Hilfsmakro |
| <stdbit.h> (seit C23) | Makros zur Arbeit mit Byte- und Bitdarstellungen von Typen |
Bedingt vollständig freistehende Standardbibliotheks-Header |
|
| <fenv.h> (seit C23) | Gleitkomma-Umgebung |
| <math.h> (seit C23) | Allgemeine mathematische Funktionen |
Teilweise freistehende Standardbibliotheks-Header |
|
| <stdlib.h> (seit C23) | Allgemeine Hilfsfunktionen: Speicherverwaltung , Programmhilfsmittel , Zeichenkettenumwandlungen , Zufallszahlen , Algorithmen |
| <string.h> (seit C23) | Zeichenkettenbehandlung |
Referenzen
- C23-Standard (ISO/IEC 9899:2024):
-
- 4 Konformität (S: 9-10)
- C17-Standard (ISO/IEC 9899:2018):
-
- 4 Konformität (S: 4)
- C11-Standard (ISO/IEC 9899:2011):
-
- 4 Konformität (S: 8-9)
- C99-Standard (ISO/IEC 9899:1999):
-
- 4 Konformität (S: 7-8)
- C89/C90 Standard (ISO/IEC 9899:1990):
-
- 1.7 Konformität
Siehe auch
|
C++ Dokumentation
für
Freestanding- und Hosted-Implementierung
|