<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Varianten_der_Programmiersprache_C</id>
	<title>Varianten der Programmiersprache C - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Varianten_der_Programmiersprache_C"/>
	<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Varianten_der_Programmiersprache_C&amp;action=history"/>
	<updated>2026-05-23T12:42:04Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in Wikipedia (Deutsch) – Lokale Kopie</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://wiki-de.moshellshocker.dns64.de/index.php?title=Varianten_der_Programmiersprache_C&amp;diff=60982&amp;oldid=prev</id>
		<title>imported&gt;Dk1909: gr</title>
		<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Varianten_der_Programmiersprache_C&amp;diff=60982&amp;oldid=prev"/>
		<updated>2026-04-01T09:07:39Z</updated>

		<summary type="html">&lt;p&gt;gr&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Seit dem Erscheinen der [[Programmiersprache]]&amp;amp;nbsp;[[C (Programmiersprache)|C]] im Jahr 1972 wurden mehrere &amp;#039;&amp;#039;&amp;#039;Varianten&amp;#039;&amp;#039;&amp;#039; (Spezifikationen und internationale Standards) veröffentlicht.&lt;br /&gt;
&lt;br /&gt;
== K&amp;amp;R-C ==&lt;br /&gt;
Mit „K&amp;amp;R-C“ wird die ursprüngliche C-Variante bezeichnet, nach ihren Erfindern [[Brian W. Kernighan]] und [[Dennis Ritchie]], die sie 1978 in der ersten Auflage ihres Buches [[The C Programming Language]] &amp;#039;&amp;#039;(K&amp;amp;R1)&amp;#039;&amp;#039; beschrieben.&lt;br /&gt;
&lt;br /&gt;
== X/Open-C ==&lt;br /&gt;
Ziel von Standardisierungsbemühungen der [[X/Open|X/Open Company, Ltd.]] war die Interoperabilität verschiedener Unix-Versionen im Jahr 1987. Die meisten Erweiterungen und Präzisierungen wurden später nach C89 übernommen.&lt;br /&gt;
&lt;br /&gt;
== {{Anker|C89}}{{Anker|C90}}C89, C90 ==&lt;br /&gt;
Im Jahre 1983 gründete das [[American National Standards Institute]] (ANSI) das Komitee &amp;#039;&amp;#039;X3J11&amp;#039;&amp;#039;, um auf Grundlage von K&amp;amp;R-C eine Norm für die Programmiersprache C zu entwickeln. In sechsjähriger Arbeit entstand bis Dezember 1989 die Norm &amp;#039;&amp;#039;ANSI X3.159-1989 Programming Language C&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
Diese Sprachfassung wird nach dem Erscheinungsjahr auch als „C89“ bezeichnet. Ein Jahr später wurde sie mit kleinen Änderungen von der WG14 der [[International Organization for Standardization|ISO]] als Norm &amp;#039;&amp;#039;ISO/IEC 9899:1990&amp;#039;&amp;#039; („C90“) übernommen. Auch die zweite Auflage des Buches &amp;#039;&amp;#039;The C Programming Language&amp;#039;&amp;#039; („K&amp;amp;R2“) übernahm 1988 diese Änderungen.&lt;br /&gt;
&lt;br /&gt;
Viele bisher ungenormte Spracheigenschaften waren jetzt einheitlich festgelegt, aber auch neue Sprachmittel wie [[Funktionsprototyp]]en, ein leistungsfähigerer [[C-Präprozessor]] sowie die Deklaration von [[Konstante (Programmierung)|Konstanten]] wurden in die Sprache aufgenommen. Die C-Norm räumte unter anderem mit Unklarheiten in der ursprünglichen Definition auf, hierzu zählen die Ausführungsreihenfolge der vier [[Inkrement und Dekrement|Inkrement- und Dekrement-Operatoren]] (&amp;lt;code&amp;gt;++&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;--&amp;lt;/code&amp;gt;). Ferner wurde der Umfang der enthaltenen [[C-Standard-Bibliothek|Standardbibliothek]] festgelegt.&lt;br /&gt;
&lt;br /&gt;
Bis heute ist C90 die Sprachbasis für alle [[Derivat (Software)|Weiterentwicklungen]] der Programmiersprache C, unter anderem auch für [[C++]], das über Möglichkeiten zur [[Objektorientierte Programmierung|objektorientierten]] und [[Generische Programmierung|generischen]] Programmierung verfügt.&lt;br /&gt;
&lt;br /&gt;
Ein auf C90 basierendes Programm sollte ohne Probleme von jedem C-[[Compiler]] übersetzt und ausgeführt werden können. In der Praxis ist das nur bedingt der Fall, da fast alle C-Derivate zusätzliche Bibliotheken und Funktionsprototypen anbieten, die auf die individuellen Komponenten des Computersystems zugreifen.&lt;br /&gt;
&lt;br /&gt;
Die Bezeichnungen „ANSI C“, „C89“ und „ISO C90“ sind äquivalent. Softwareprojekte mit langer Historie wie [[cURL]], [[SQLite]] und [[libxml2]] sind (Stand 2022) ausschließlich in C89 geschrieben. [[CPython]] war bis Version 3.6 im Dialekt C89 abgefasst,&amp;lt;ref&amp;gt;https://lwn.net/SubscriberLink/886516/d835ee6026544345/&amp;lt;/ref&amp;gt; der [[Linux (Kernel)|Linux-Kernel]]&amp;lt;ref&amp;gt;https://lwn.net/Articles/885941/&amp;lt;/ref&amp;gt; sogar über 30 Jahre bis Version 5.17 vom März 2022.&amp;lt;ref name=&amp;quot;heiseonline_7121451&amp;quot;&amp;gt;{{Heise online |ID=7121451 |Titel=Linux 5.18 kommt als „kleine Revolution“ |Autor=Oliver Müller |Datum=2022-05-24 |Abruf=2022-05-27 |Zitat=Der neue Linux-Kernel … wechselt erstmalig [sic!] zu einem neueren C-Standard.}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Neuerungen von C90 ===&lt;br /&gt;
&lt;br /&gt;
*Der Funktionsumfang sowie das Verhalten der Funktionen der [[C-Standard-Bibliothek|Standardbibliothek]] wurden normiert.&lt;br /&gt;
*Ein verbesserter [[C-Präprozessor|Präprozessor]] wurde eingeführt.&lt;br /&gt;
*[[Funktionsprototyp]]en wurden eingeführt.&lt;br /&gt;
*&amp;lt;code&amp;gt;void&amp;lt;/code&amp;gt; für leere Funktionsparameter-Deklarationen und zur Kennzeichnung von Funktionen ohne Returnwert sowie &amp;lt;code&amp;gt;void*&amp;lt;/code&amp;gt; für einen universell kompatiblen Zeigertyp kamen neu hinzu.&lt;br /&gt;
*Die neuen Schlüsselwörter &amp;lt;code&amp;gt;const&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;volatile&amp;lt;/code&amp;gt; und &amp;lt;code&amp;gt;signed&amp;lt;/code&amp;gt; wurden eingeführt.&lt;br /&gt;
*Das ungenutzte Schlüsselwort &amp;lt;code&amp;gt;entry&amp;lt;/code&amp;gt; wurde entfernt.&lt;br /&gt;
*Unterstützung für &amp;#039;&amp;#039;{{lang|en|wide-character}}-&amp;#039;&amp;#039; (mehr als 8 Bit Breite) sowie für [[Multibyte Character Set|Multibyte-Zeichensätze]] wurde hinzugefügt.&lt;br /&gt;
&lt;br /&gt;
=== Präprozessortest auf C90-Kompatibilität ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
#if __STDC__&lt;br /&gt;
/*&lt;br /&gt;
 * C90-kompatibler Quellcode.&lt;br /&gt;
 */&lt;br /&gt;
#endif&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== C95 ==&lt;br /&gt;
1995 veröffentlichte die [[International Organization for Standardization|ISO]] eine Erweiterung – das Amendment&amp;amp;nbsp;1 – zur C-Norm, die dann als „ISO/IEC 9899/AMD1:1995“ &amp;#039;&amp;#039;(C95)&amp;#039;&amp;#039; bezeichnet wurde. Neben Fehlerkorrekturen gab es auch Änderungen am Sprachumfang.&amp;lt;ref&amp;gt;{{Internetquelle | url=http://www.lysator.liu.se/c/na1.html | titel=A brief description of Normative Addendum 1 | autor=Clive D.W. Feather | zugriff=2010-09-12 | sprache=en }}&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;{{Internetquelle | url=http://www.iso.org/iso/home/store/catalogue_ics/catalogue_detail_ics.htm?csnumber=23909 | titel=ISO/IEC 9899:1990/Amd 1:1995 | zugriff=2013-03-22 | hrsg= International Organization for Standardization | sprache=en }}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Neuerungen von C95 ===&lt;br /&gt;
&lt;br /&gt;
*Verbesserung der Unterstützung von Multibyte- und &amp;#039;&amp;#039;{{lang|en|wide-character}}&amp;#039;&amp;#039;-Zeichensätzen durch die Standardbibliothek.&lt;br /&gt;
*Hinzufügen von [[Digraph (Informatik)|Digraphen]] zur Sprache.&lt;br /&gt;
*Definition von Standard-Makros zur alternativen Schreibweise von Operatoren, zum Beispiel &amp;lt;code&amp;gt;and&amp;lt;/code&amp;gt; für &amp;lt;code&amp;gt;&amp;amp;&amp;amp;&amp;lt;/code&amp;gt;.&lt;br /&gt;
*Definition des Standard-Makros &amp;lt;code&amp;gt;__STDC_VERSION__&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Präprozessortest auf C95-Kompatibilität ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
#if defined(__STDC_VERSION__) &amp;amp;&amp;amp; __STDC_VERSION__ &amp;gt;= 199409L&lt;br /&gt;
/*&lt;br /&gt;
 * C95-kompatibler Quellcode.&lt;br /&gt;
 */&lt;br /&gt;
#endif&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== C99 ==&lt;br /&gt;
1995 wurde erneut ein Ausschuss gegründet, um C zu erweitern und zu verbessern. Daraus ging 1999 der ISO-Standard &amp;#039;&amp;#039;ISO/IEC 9899:1999&amp;#039;&amp;#039; hervor, auch als „C99“ bezeichnet. Er löste den Standard &amp;#039;&amp;#039;ISO/IEC 9899:1994-09&amp;#039;&amp;#039; (C95) ab. Zu diesem Standard erschienen 2001 ein &amp;#039;&amp;#039;Technical Corrigendum 1&amp;#039;&amp;#039;&amp;lt;ref&amp;gt;{{Internetquelle | url=http://www.open-std.org/jtc1/sc22/wg14/www/docs/9899tc1/n32071.PDF | titel=C99 Technical Corrigendum 1&lt;br /&gt;
 | zugriff=2010-09-22 | format=PDF; 21&amp;amp;nbsp;kB | sprache=en }}&amp;lt;/ref&amp;gt;, 2004 ein &amp;#039;&amp;#039;Technical Corrigendum 2&amp;#039;&amp;#039;&amp;lt;ref&amp;gt;{{Internetquelle | url=http://www.open-std.org/jtc1/sc22/wg14/www/docs/9899-1999_cor_2-2004.pdf | titel=C99 Technical Corrigendum 2 | zugriff=2010-09-22 | format=PDF; 353&amp;amp;nbsp;kB | sprache=en }}&amp;lt;/ref&amp;gt; und 2007 ein &amp;#039;&amp;#039;Technical Corrigendum 3&amp;#039;&amp;#039;&amp;lt;ref&amp;gt;{{Internetquelle | url=http://www.iec.ch/cgi-bin/getcorr.pl/yab/iso/isoiec9899-cor3%7Bed1.0%7Den.pdf?file=iso/isoiec9899-cor3%7Bed1.0%7Den.pdf | titel=C99 Technical Corrigendum 3 | zugriff=2010-09-22 | format=PDF; 0&amp;amp;nbsp;kB | sprache=en | archiv-url=https://web.archive.org/web/20090707101335/http://www.iec.ch/cgi-bin/getcorr.pl/yab/iso/isoiec9899-cor3%7Bed1.0%7Den.pdf?file=iso%2Fisoiec9899-cor3%7Bed1.0%7Den.pdf | archiv-datum=2009-07-07 | offline=ja  }}&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Mit C99 flossen einige aus [[C++]] bekannte Erweiterungen in die Sprache C ein, zum Beispiel Inline-Funktionen und die Möglichkeit, Variablen innerhalb der [[For-Schleife|&amp;lt;code&amp;gt;for&amp;lt;/code&amp;gt;-Anweisung]] zu deklarieren.&lt;br /&gt;
&lt;br /&gt;
=== Neuerungen von C99 ===&lt;br /&gt;
&lt;br /&gt;
*Unterstützung von [[Komplexe Zahl|komplexen Zahlen]] durch den neuen Datentyp &amp;lt;code&amp;gt;_Complex&amp;lt;/code&amp;gt; und entsprechende Funktionen in der Standardbibliothek.&lt;br /&gt;
*zusammengesetzte Literale.&lt;br /&gt;
*Bestimmte Initialisierer.&lt;br /&gt;
*Erweiterung der ganzzahligen Datentypen um einen mindestens 64&amp;amp;nbsp;Bit breiten Typ &amp;lt;code&amp;gt;long long&amp;lt;/code&amp;gt;, sowie um Typen mit vorgegebener Mindestbreite, zum Beispiel &amp;lt;code&amp;gt;int_least8_t&amp;lt;/code&amp;gt; und &amp;lt;code&amp;gt;uint_least32_t&amp;lt;/code&amp;gt;. Außerdem werden [[Integer (Datentyp)|Integer-Typen]] mit exakter Breite spezifiziert, aber als optional bezeichnet&amp;amp;nbsp;– zum Beispiel &amp;lt;code&amp;gt;int32_t&amp;lt;/code&amp;gt;.&lt;br /&gt;
*[[Feld (Datentyp)|Felder]] variabler Größe (sogenannte [[Variable Length Array]]s).&lt;br /&gt;
*Der [[Boolesche Variable|boolesche Datentyp]] &amp;lt;code&amp;gt;_Bool&amp;lt;/code&amp;gt;. Über einen eigenen Header &amp;lt;code&amp;gt;&amp;amp;lt;stdbool.h&amp;amp;gt;&amp;lt;/code&amp;gt; wird für ihn ein Alias namens &amp;lt;code&amp;gt;bool&amp;lt;/code&amp;gt; sowie die Werte &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt; und &amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt; definiert.&lt;br /&gt;
*Weiter verbesserte Unterstützung für internationale Zeichensätze.&lt;br /&gt;
*Erweiterte Unterstützung von [[Gleitkommazahl]]en inklusive neuer mathematischer Funktionen in der C-Bibliothek.&lt;br /&gt;
*[[Aliasing|Alias]]-freie Zeiger (Schlüsselwort &amp;lt;code&amp;gt;restrict&amp;lt;/code&amp;gt;).&lt;br /&gt;
*Frei platzierbare Deklaration von Bezeichnern (in C90 durften diese nur am Anfang eines Blocks stehen).&lt;br /&gt;
*Inline-Funktionen (Schlüsselwort &amp;lt;code&amp;gt;inline&amp;lt;/code&amp;gt;).&lt;br /&gt;
*Verbot des „impliziten &amp;lt;code&amp;gt;int&amp;lt;/code&amp;gt;“; Verbot impliziter Funktionsdeklarationen.&lt;br /&gt;
*Hexadezimale Gleitkommakonstanten. Ein- und Ausgabe in &amp;lt;code&amp;gt;scanf()&amp;lt;/code&amp;gt; und &amp;lt;code&amp;gt;printf()&amp;lt;/code&amp;gt; über „&amp;lt;code&amp;gt;%a&amp;lt;/code&amp;gt;“ und „&amp;lt;code&amp;gt;%A&amp;lt;/code&amp;gt;“.&lt;br /&gt;
*Präprozessor-Makros mit variabler Parameteranzahl.&lt;br /&gt;
*Zulassen des aus C++ bekannten Zeilenkommentars „&amp;lt;code&amp;gt;//&amp;lt;/code&amp;gt;“.&lt;br /&gt;
*Möglichkeit einer Deklaration im ersten Ausdruck einer for-Schleife: &amp;lt;code&amp;gt;for(int i=0;...)&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Präprozessortest auf C99-Kompatibilität ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
#if defined(__STDC_VERSION__) &amp;amp;&amp;amp; __STDC_VERSION__ &amp;gt;= 199901L&lt;br /&gt;
// Compiler ist C99-kompatibel.&lt;br /&gt;
#endif&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== C11 ==&lt;br /&gt;
Das Normierungskomitee WG14 arbeitete an einer Neuauflage des C-Standards mit Arbeitstitel &amp;#039;&amp;#039;C1X&amp;#039;&amp;#039;, basierend auf dem C99-Standard inklusive der &amp;#039;&amp;#039;Technical Corrigenda&amp;#039;&amp;#039; TC1, TC2 und TC3 &amp;#039;&amp;#039;(C0X)&amp;#039;&amp;#039;. Am 8. Dezember 2011 wurde &amp;#039;&amp;#039;C11&amp;#039;&amp;#039; als ISO/IEC 9899:2011 verabschiedet.&amp;lt;ref&amp;gt;{{Internetquelle | url=http://www.iso.org/iso/iso_catalogue/catalogue_tc/catalogue_detail.htm?csnumber=57853 | titel=ISO aktualisiert C-Standard | zugriff=2011-12-23 | sprache=en }}&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;{{Internetquelle | url=http://heise.de/-1400349 | titel=Artikel von heise online | zugriff=2011-12-23 | sprache=en }}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Neuerungen von C11 ===&lt;br /&gt;
Die Auflistung basiert auf diversen &amp;#039;&amp;#039;Technical Reports&amp;#039;&amp;#039;&amp;lt;ref&amp;gt;{{Internetquelle | url=http://www.open-std.org/JTC1/SC22/WG14/www/projects | titel=Projektstatus für C1X | zugriff=2010-09-12 | sprache=en }}&amp;lt;/ref&amp;gt; und dem aktuellen Arbeitsdokument zu C1X.&amp;lt;ref&amp;gt;{{Internetquelle | url=http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1570.pdf | titel=ISO/IEC 9899:201x | format=PDF; 1,6&amp;amp;nbsp;MB | zugriff=2011-04-12 | sprache=en | kommentar=nicht-normatives Arbeitsdokument}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Unterstützung von [[Multithreading]] (&amp;lt;code&amp;gt;&amp;amp;lt;threads.h&amp;amp;gt;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;&amp;amp;lt;stdatomic.h&amp;amp;gt;&amp;lt;/code&amp;gt;)&lt;br /&gt;
*Angaben zur [[Speicherausrichtung]] von Objekten (&amp;lt;code&amp;gt;&amp;amp;lt;stdalign.h&amp;amp;gt;&amp;lt;/code&amp;gt;)&lt;br /&gt;
*Neue Datentypen &amp;lt;code&amp;gt;char16_t&amp;lt;/code&amp;gt; und &amp;lt;code&amp;gt;char32_t&amp;lt;/code&amp;gt; zur verbesserten Unterstützung von [[Unicode]], insbesondere [[UTF-16]] und [[UTF-32]] (&amp;lt;code&amp;gt;&amp;amp;lt;uchar.h&amp;amp;gt;&amp;lt;/code&amp;gt;)&lt;br /&gt;
*Änderungen an der Standardbibliothek zur Prüfung von Feldgrenzen zur Laufzeit des Programms, um z.&amp;amp;nbsp;B. [[Pufferüberlauf|Pufferüberläufe]] wirksamer vermeiden zu können&amp;lt;ref&amp;gt;{{Internetquelle | url=http://open-std.org/JTC1/SC22/WG14/www/docs/n1225.pdf | titel=Extensions to the C Library, Part I: Bounds-checking interfaces | format=PDF; 565&amp;amp;nbsp;kB | sprache=en | zugriff=2010-10-31 | kommentar=Entwurf}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
*Unterstützung der internen dezimalen Darstellung von Gleitkommazahlen gemäß [[IEEE 754|IEEE 754-2008]]&lt;br /&gt;
*Öffnen von Dateien mit exklusivem Lese-/Schreibrecht (Modus „x“)&lt;br /&gt;
*Generische Ausdrücke (Schlüsselwort &amp;lt;code&amp;gt;_Generic&amp;lt;/code&amp;gt;), generische mathematische Funktionen für Gleitkommazahlen und komplexe Zahlen (&amp;lt;code&amp;gt;&amp;amp;lt;tgmath.h&amp;amp;gt;&amp;lt;/code&amp;gt;)&lt;br /&gt;
*Entfernung der Bibliotheksfunktion &amp;lt;code&amp;gt;gets&amp;lt;/code&amp;gt;&lt;br /&gt;
*Einige der in C99 geforderten Funktionalitäten sind Compiler-Herstellern bei C11 wieder freigestellt, wie z.&amp;amp;nbsp;B. lokale Felder variabler Größe, komplexe Zahlen. Der Funktionsumfang kann mit Hilfe von Compiler-Defines abgefragt werden: &amp;lt;code&amp;gt;__STDC_NO_COMPLEX__&amp;lt;/code&amp;gt; (keine komplexe Zahlen),  &amp;lt;code&amp;gt;__STDC_NO_VLA__&amp;lt;/code&amp;gt; (keine Felder variabler Länge)&lt;br /&gt;
&lt;br /&gt;
=== Präprozessortest auf C11-Kompatibilität ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
#if defined(__STDC_VERSION__) &amp;amp;&amp;amp; __STDC_VERSION__ &amp;gt;= 201112L&lt;br /&gt;
 // C11 kompatibler Quellcode.&lt;br /&gt;
#endif&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== C17 ==&lt;br /&gt;
Diese Norm entspricht der von C11 mit der Ausnahme von Fehlerkorrekturen und einem neuen Wert von __STDC_VERSION__ und wird daher im selben Umfang wie C11 unterstützt.&amp;lt;ref&amp;gt;{{Internetquelle | url=https://gcc.gnu.org/onlinedocs/gcc/C-Dialect-Options.html | titel=Options Controlling C Dialect| zugriff=2018-09-08}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
Der Standard wurde im Juni 2018 unter der Norm &amp;#039;&amp;#039;ISO/IEC 9899:2018&amp;#039;&amp;#039; freigegeben.&amp;lt;ref&amp;gt;{{Internetquelle | url=https://www.iso.org/standard/74528.html | titel=ISO/IEC 9899:2018 Programming languages C| zugriff=2018-09-08}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== C23 (C2x) ==&lt;br /&gt;
C23 (zuvor meist noch als C2x bezeichnet) ist der noch informelle Name für die nächste und für das Jahr 2023 geplante Revision des C-Standards.&amp;lt;ref&amp;gt;{{Internetquelle |url=https://www.open-std.org/jtc1/sc22/wg14/www/docs/n2984.pdf |titel=Revised C23 Schedule |werk=Open Standards |sprache=en |abruf=2022-06-22}}&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;{{Internetquelle |url=https://en.cppreference.com/w/c/23 |titel=C23 |werk=cppreference.com |datum=2022-05-16 |sprache=en |abruf=2022-06-22}}&amp;lt;/ref&amp;gt; Zu den noch nicht verabschiedeten Neuerungen sollen u.&amp;amp;nbsp;a. die Aufnahme von Attributen (wie sie bereits als Compiler-abhängige Erweiterungen üblich waren) mit einer neuen [[Syntax]],&amp;lt;ref&amp;gt;{{Internetquelle |url=https://en.cppreference.com/w/c/language/attributes |titel=Attribute specifier sequence (since C23) |werk=cppreference.com |datum=2022-06-18 |sprache=en |abruf=2022-06-22}}&amp;lt;/ref&amp;gt; die binäre Schreibweise von Integerkonstanten,&amp;lt;ref&amp;gt;{{Internetquelle |url=https://en.cppreference.com/w/c/language/integer_constant |titel=Integer constant |werk=cppreference.com |datum=2021-10-29 |sprache=en |abruf=2022-06-22}}&amp;lt;/ref&amp;gt; und die Einführung neuer Präprozessor-Direktiven gehören.{{Zukunft|2023}}&lt;br /&gt;
&lt;br /&gt;
== Beispiele für den Unterschied zwischen verschiedenen Fassungen der Sprache C ==&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;K&amp;amp;R-C:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
/* Es gibt noch keine Funktionsprototypen.&lt;br /&gt;
Die Funktion gibt implizit ein (hier undefiniertes) int zurück, void und const gibt es noch nicht */&lt;br /&gt;
Ausgabe(str)&lt;br /&gt;
char *str;&lt;br /&gt;
{&lt;br /&gt;
    int vier 4;  /* das &amp;#039;=&amp;#039; war optional */&lt;br /&gt;
    printf(&amp;quot;%s %d\n&amp;quot;, str, vier);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
main()&lt;br /&gt;
{&lt;br /&gt;
    Ausgabe(&amp;quot;Hallo Welt!&amp;quot;);&lt;br /&gt;
    return 0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;C90&amp;#039;&amp;#039;&amp;#039;/&amp;#039;&amp;#039;&amp;#039;C95:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
/* Das Argument darf nicht geändert werden. */&lt;br /&gt;
void Ausgabe(const char* const str) {&lt;br /&gt;
    int vier = 4;&lt;br /&gt;
    printf(&amp;quot;%s %d\n&amp;quot;, str, vier);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
main() {&lt;br /&gt;
    Ausgabe(&amp;quot;Hallo Welt!&amp;quot;);&lt;br /&gt;
    return 0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;C99/C11:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt; // C++-Kommentare endlich offiziell erlaubt, nachdem 10 Jahre lang von Compilern unterstützt&lt;br /&gt;
&lt;br /&gt;
void Ausgabe(const char* const str) {&lt;br /&gt;
    int vier = 4;&lt;br /&gt;
    printf(&amp;quot;%s %d\n&amp;quot;, str, vier);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
int main() {&lt;br /&gt;
    Ausgabe(&amp;quot;Hallo Welt!&amp;quot;);&lt;br /&gt;
    // Ab C99 auch implizite Beendigung, interpretiert als: return 0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
&lt;br /&gt;
*{{Internetquelle | url=http://csapp.cs.cmu.edu/2e/docs/chistory.html | titel=The Development of the C Language | autor=Dennis M. Ritchie | zugriff=2010-09-12 | sprache=en }}&lt;br /&gt;
*{{Webarchiv | url=http://dev.unicals.com/papers/c89-draft.html | wayback=20050207005628 | text=C89 Draft}}&lt;br /&gt;
*{{Internetquelle | url=http://www.lysator.liu.se/c/rat/title.html | titel=Rationale für C89 | zugriff=2010-09-12 | sprache=en }}&lt;br /&gt;
*{{Internetquelle | url=http://www.open-std.org/JTC1/SC22/WG14/www/docs/n1256.pdf | titel=ISO/IEC 9899:1999 (C99) mit TC1, TC2 und TC3 | format=PDF; 3,8&amp;amp;nbsp;MB | zugriff=2010-09-12 | sprache=en | kommentar=nicht-normatives Arbeitsdokument }}&lt;br /&gt;
*{{Internetquelle | url=http://www.open-std.org/jtc1/sc22/wg14/www/C99RationaleV5.10.pdf | titel=Rationale für C99, Revision 5.10 | format=PDF; 898&amp;amp;nbsp;kB | zugriff=2010-09-12 | sprache=en }}&lt;br /&gt;
*[http://www.open-std.org/JTC1/SC22/WG14/www/docs/n1570.pdf ISO/IEC C11 final working draft] (PDF; 1,6&amp;amp;nbsp;MB)&lt;br /&gt;
*[http://www.open-std.org/jtc1/sc22/wg14/www/abq/c17_updated_proposed_fdis.pdf Draft zur ISO/IEC 9899:2018] vom 1. November 2017&lt;br /&gt;
&lt;br /&gt;
== Einzelnachweise ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:C (Programmiersprache)|!]]&lt;/div&gt;</summary>
		<author><name>imported&gt;Dk1909</name></author>
	</entry>
</feed>