{"id":3804,"date":"2019-04-08T12:33:02","date_gmt":"2019-04-08T10:33:02","guid":{"rendered":"https:\/\/dev.wi-lex.de\/index.php\/c-3\/"},"modified":"2022-03-28T14:04:55","modified_gmt":"2022-03-28T12:04:55","slug":"c-3","status":"publish","type":"page","link":"https:\/\/wi-lex.de\/lexikon\/technologische-und-methodische-grundlagen\/sprache\/programmiersprache\/c-3\/","title":{"rendered":"C"},"content":{"rendered":"<p align=\"JUSTIFY\"><em>Die Programmiersprache C ist eine maschinennahe imperative Sprache, die zur System- und Anwendungsprogrammierung eingesetzt wird.<\/em><\/p>\n<h2>Allgemeines<\/h2>\n<p class=\"wl_normal\" style=\"text-align: justify;\">Entwickelt wurde C Anfang der siebziger Jahre an den Bell Labs von Dennis Ritchie, Brian W. Kernighan und Ken Thompson. Die Ver\u00f6ffentlichung der Sprachbeschreibung erfolgte 1972. Als Implementierungssprache des sp\u00e4ter weit verbreiteten Betriebssystems UNIX erlangte die Sprache gro\u00dfe Bedeutung. Durch die Portierung auf weitere Betriebssysteme wurde C zu einer der am weitesten verbreiteten Programmiersprachen.<\/p>\n<p class=\"MsoPlainText\">C wurde von einigen Vorg\u00e4ngersprachen beeinflusst (B, Algol-68) und beeinflusste Syntax und andere Eigenschaften zahlreicher sp\u00e4terer Sprachen wie C++, Objective-C, C#, Java, PHP oder Perl.<\/p>\n<h2>Versionen und Varianten<\/h2>\n<p style=\"text-align: justify;\">Zu den Varianten der Programmiersprache C z\u00e4hlen<\/p>\n<ul>\n<li>\n<p align=\"JUSTIFY\">K&amp;R-C (die urspr\u00fcnglich ver\u00f6ffentlichte Sprachbeschreibung),<\/p>\n<\/li>\n<li>\n<p align=\"JUSTIFY\">C89 und C90 (<em>ANSI X3.159-1989<\/em> und <em>ISO\/IEC 9899:1990<\/em>) und<\/p>\n<\/li>\n<li>\n<p align=\"JUSTIFY\">C99 (<em>ISO\/IEC 9899:1999<\/em>).<\/p>\n<\/li>\n<\/ul>\n<p style=\"text-align: justify;\">Mit dem Standard C99 sind einige aus C++ bekannte Erweiterungen in die Sprache C eingeflossen. In den meisten C-Systemen steht die genormte <span class=\"wl_hervorhebung\">Standard C Library<\/span> zur Verf\u00fcgung.<\/p>\n<h2>Eigenschaften<\/h2>\n<p class=\"wl_normal\" style=\"text-align: justify;\">Der ausf\u00fchrbare C-Programmcode wird in Funktionen definiert. Die Sprache erlaubt fest definierte G\u00fcltigkeitsbereiche f\u00fcr Variablen und Rekursion.<\/p>\n<p class=\"wl_normal\" style=\"text-align: justify;\">Das Speichermanagement in C sieht statische, automatische und dynamische Speicherallokation vor. Bei der statischen Allokation wird Speicherplatz f\u00fcr die Objekte zur Kompilationszeit festgelegt, die automatische Allokation ist durch die Stack-Verwaltung realisiert. Durch die dynamische Speicherallokation k\u00f6nnen die Speicherbereiche zur Ausf\u00fchrungszeit explizit reserviert und wieder freigegeben werden, sodass Objekte benutzt werden k\u00f6nnen, deren Gr\u00f6\u00dfe erst zur Laufzeit bekannt wird.<br \/>\nAufgrund der Hardwaren\u00e4he von C und einer begrenzten Elementenmenge existieren Compiler f\u00fcr zahlreiche Plattformen. Ein C-Programm wird durch einen Linker aus dem kompilierten Objektcode zum ausf\u00fchrbaren Computerprogramm gebunden.<\/p>\n<p class=\"wl_normal\" style=\"text-align: justify;\">C erlaubt hardwarenahe Programmierung und direkte Speicherzugriffe \u00fcber Zeiger.\u00a0 Diese Eigenschaften f\u00fchren zu einer hohen Effizienz, was insbesondere den Einsatz von C zur Systemprogrammierung \u2013 sowohl f\u00fcr Betriebssysteme als auch f\u00fcr eingebettete Systeme \u2013 f\u00f6rdert.\u00a0 Andererseits\u00a0 k\u00f6nnen umfangreiche Softwareprojekte in C schnell un\u00fcbersichtlich und fehleranf\u00e4llig werden, sodass die Programmiersprache f\u00fcr sicherheitskritische Einsatzgebiete weniger geeignet ist.<\/p>\n<hr \/>\n<h3>Literatur<\/h3>\n<p>Kernighan, Brian W.; Ritchie, Dennis: Programmieren in C. 2. Auflage. M\u00fcnchen: Hanser Fachbuch, 1990<\/p>\n<p>&nbsp;<\/p>\n<div id=\"accel-snackbar\" style=\"left: 50%; transform: translate(-50%, 0px); bottom: 50px;\"><\/div>\n","protected":false},"excerpt":{"rendered":"<p>Die Programmiersprache C ist eine maschinennahe imperative Sprache, die zur System- und Anwendungsprogrammierung eingesetzt wird. Allgemeines Entwickelt wurde C Anfang der siebziger Jahre an den Bell Labs von Dennis Ritchie, Brian W. Kernighan und Ken Thompson. Die Ver\u00f6ffentlichung der Sprachbeschreibung <a href=\"https:\/\/wi-lex.de\/lexikon\/technologische-und-methodische-grundlagen\/sprache\/programmiersprache\/c-3\/\" class=\"read-more\">Read More &#8230;<\/a><\/p>\n","protected":false},"author":568,"featured_media":0,"parent":4440,"menu_order":5,"comment_status":"open","ping_status":"open","template":"","meta":{"footnotes":""},"class_list":["post-3804","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/wi-lex.de\/wp-json\/wp\/v2\/pages\/3804","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wi-lex.de\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/wi-lex.de\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/wi-lex.de\/wp-json\/wp\/v2\/users\/568"}],"replies":[{"embeddable":true,"href":"https:\/\/wi-lex.de\/wp-json\/wp\/v2\/comments?post=3804"}],"version-history":[{"count":6,"href":"https:\/\/wi-lex.de\/wp-json\/wp\/v2\/pages\/3804\/revisions"}],"predecessor-version":[{"id":16124,"href":"https:\/\/wi-lex.de\/wp-json\/wp\/v2\/pages\/3804\/revisions\/16124"}],"up":[{"embeddable":true,"href":"https:\/\/wi-lex.de\/wp-json\/wp\/v2\/pages\/4440"}],"wp:attachment":[{"href":"https:\/\/wi-lex.de\/wp-json\/wp\/v2\/media?parent=3804"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}