Ich lerne gerade c. Das Buch, das ich gelesen habe, basiert auf C99. Ich möchte mein Wissen auf C11 aktualisieren, nachdem ich dieses Buch beendet habe, oder die Ressource wechseln, wenn es einen großen Unterschied gibt. Was ich also verlange, ist eine Erklärung oder Ressource, um mein Wissen zu aktualisieren. Ich habe nur diese Quelle gefunden. Trotzdem scheint es nicht die Informationen zu umfassen, die ich benötige, oder nicht prägnant.
Danke im Voraus. PS: Ich möchte C11 lernen, da ich denke, dass es jetzt der vorherrschende Standard ist. Wenn nicht, informieren Sie mich bitte.
Ich denke nicht, dass Sie sich in der jetzigen Phase zu viele Gedanken darüber machen sollten.
Etwa 12 Jahre Verbesserungen, nach vielen Verhandlungen. Damit sind in erster Linie Zusatzfunktionen gemeint, die in bestimmten Situationen nützlich sein können; aber um den C-Code auf die nächste Version portierbar zu halten, werden sie höchstwahrscheinlich keinen Code beschädigen, den Sie in C99 schreiben, oder sie würden ihre Entwicklerbasis verlieren.
Das _Noreturn Funktionsbezeichner und die <stdnoreturn.h> Header-Datei
Geben Sie generische Ausdrücke mit dem ein _Generic Stichwort. Beispielsweise das folgende Makro cbrt(x) wird übersetzt in cbrtl(x), cbrt(x) oder cbrtf(x) je nach art x:
Multithreading-Unterstützung (_Thread_local Speicherklassenbezeichner, <threads.h> Header einschließlich Thread-Erstellungs-/Verwaltungsfunktionen, Mutex, Bedingungsvariable und Thread-spezifische Speicherfunktionen sowie die _Atomic Typqualifizierer und <stdatomic.h> für unterbrechungsfreien Objektzugriff).
Verbesserte Unicode-Unterstützung basierend auf dem C Unicode Technical Report ISO/IEC TR 19769:2004 (char16_t und char32_t Typen zum Speichern UTF-16/UTF-32 codierte Daten, einschließlich Konvertierungsfunktionen in <uchar.h> und die entsprechenden u- und U-String-Literalpräfixe sowie das u8-Präfix für UTF-8 codierte Literale).
Entfernung der gets Funktion, veraltet in der vorherigen Überarbeitung des C-Sprachstandards, ISO/IEC 9899:1999/Cor.3:2007(E), zugunsten einer neuen sicheren Alternative, gets_s.
Bounds-Checking-Schnittstellen (Anhang K).
Analysierbarkeitsmerkmale (Anhang L).
Weitere Makros zum Abfragen der Eigenschaften von Fließkommatypen bezüglich subnormaler Fließkommazahlen und der Anzahl der Dezimalstellen, die der Typ speichern kann.
Anonyme Strukturen und Vereinigungen, nützlich, wenn Vereinigungen und Strukturen verschachtelt sind, z. B. in struct T { int tag; union { float x; int n; }; };.
Statische Zusicherungen, die während der Übersetzung zu einem späteren Zeitpunkt ausgewertet werden #if und #errorwenn Typen vom Übersetzer verstanden werden.
Ein exklusiver Erstellungs- und Öffnungsmodus ("…x" Zusatz) für open. Das verhält sich wie O_CREAT|O_EXCL in POSIXdas häufig für Sperrdateien verwendet wird.
Das quick_exit Funktion als dritte Möglichkeit, ein Programm zu beenden, um bei Beendigung mit zumindest eine minimale Deinitialisierung durchzuführen exit scheitert.
Makros für den Aufbau komplexer Werte (teilweise weil real + imaginary*I liefert möglicherweise nicht den erwarteten Wert, wenn imaginary ist unendlich bzw NaN).
Pro die C 2011-Standard selbst, hier sind die wichtigsten Änderungen gegenüber C99:
Vorwort
…
6 Diese dritte Ausgabe annulliert und ersetzt die zweite Ausgabe, ISO/IEC 9899:1999, korrigiert durch ISO/IEC 9899:1999/Cor 1:2001, ISO/IEC 9899:1999/Cor 2:2004 und ISO/IEC 9899 :1999/Kor 3:2007. Zu den wichtigsten Änderungen gegenüber der vorherigen Ausgabe gehören:
— bedingte (optionale) Funktionen (einschließlich einiger, die zuvor obligatorisch waren)
— Unterstützung für mehrere Ausführungsthreads, einschließlich eines verbesserten Speichersequenzierungsmodells, atomarer Objekte und Thread-lokaler Speicherung (<stdatomic.h> und <threads.h>)
— (bedingte) Unterstützung für Bounds-Checking Interfaces (ursprünglich spezifiziert in ISO/IEC TR 24731−1:2007)
— (bedingte) Unterstützung der Analysierbarkeit
Der Link führt zum N1570-Entwurf des C11-Standards. Zwischen diesem Entwurf und dem endgültig veröffentlichten Standard wurden einige sehr geringfügige Änderungen vorgenommen.
– Keith Thompson
15. Juli 2016 um 22:20 Uhr
Der C11-Standard selbst ist nur zum Kauf erhältlich, daher ist N1570 für Leute wie mich, @JohnBode und die breite Öffentlichkeit das Beste, was wir für C11 haben (ohne Geld zu bezahlen). Sehen ISO/IEC 9899 – Programmiersprachen – C
– Jeremiah Peschka ♦
21. August 2019 um 14:55 Uhr
13985900cookie-checkUnterschied zwischen c99 und c11 [closed]yes
Ich denke nicht, dass Sie sich in der jetzigen Phase zu viele Gedanken darüber machen sollten.
– Eugen Sch.
15. Juli 2016 um 21:29 Uhr
Nun, es gibt Wikipedia.
– gelbantphil
15. Juli 2016 um 21:30 Uhr
Etwa 12 Jahre Verbesserungen, nach vielen Verhandlungen. Damit sind in erster Linie Zusatzfunktionen gemeint, die in bestimmten Situationen nützlich sein können; aber um den C-Code auf die nächste Version portierbar zu halten, werden sie höchstwahrscheinlich keinen Code beschädigen, den Sie in C99 schreiben, oder sie würden ihre Entwicklerbasis verlieren.
– Edwin Buck
25. August 2019 um 15:23 Uhr