* * *
c
II 〈ohne Artikel〉
1. 〈Mus.; Abk. für〉 c-Moll (Tonartbez.)
2. 〈Abk. für engl.〉 Cent
4. 〈Zeichen für〉 Zenti...
* * *
c:
1) Vorsatzzeichen für Zenti-;
2) veraltetes Einheitenzeichen für Curie;
3) Formelzeichen für Lichtgeschwindigkeit, Stoffmengenkonzentration, osmotische Konzentration (ĉ, früher: Osmolarität) u. spezifische Wärmekapazität;
4) Symbol für ein Charm genanntes Quark;
6) Kennbuchstabe für die Stelle der ↑ Anellierung weiterer Ringe in kondensierten Ringsystemen;
7) ↑ c-.
* * *
1. dritter Buchstabe des Alphabets, ein Konsonantenbuchstabe.
2. (Musik) erster Ton der Grund-(C-Dur-)Tonleiter.
* * *
I C,
Programmierung: eine Programmiersprache mit Eigenschaften und Sprachelementen aus Assembler-ähnlichen und höheren Programmiersprachen. C hat sich über das Betriebssystem Unix verbreitet, das in großen Teilen auf C basiert, und stellt heute zusammen mit dem Nachfolger C++ eine der bedeutendsten Programmiersprachen dar.
C baut auf Arbeiten von Ken Thompson auf, der in den späten 1960er-Jahren die Basic Combined Programming Language (BCPL) für das Programmieren des Betriebssystems Unix weiterentwickelte; seine neuen Sprachen nannte er A bzw. B. Die Sprache B realisierte die Idee einer höheren Programmiersprache, bot aber gleichzeitig Zugriff auf Bitebene (vergleichbar Assembler). Einziger Datentyp von B war das Maschinenwort. 1972 griffen Dennis M. Ritchie und Brian W. Kernighan in den Bell Laboratories (USA) dieses Konzept auf und entwickelten B weiter zu einer Implementierungssprache für Unix. Diese neue Sprache nannten sie C. 1978 wurde C erstmals ausgeliefert; 1983 definierten Kernighan und Ritchie in ihrem grundlegenden Buch »The C Programming Language« (dt. »Die Programmiersprache C«) einen gewissen Mindestumfang für C (K & R-Sprachumfang). Die Entstehung weiterer Dialekte machte jedoch eine weitere Normierung durch das American National Standards Institute (ANSI) sinnvoll. Ziel war eine eindeutige und maschinenunabhängige Definition von C. Dieser Standard (»ANSI-C«) wurde 1989 veröffentlicht. In der Zwischenzeit hatte ein weiterer Forscher der Bell Laboratories, Bjarne Stroustrup, C durch objektorientierte Erweiterungen ergänzt und 1986 die Programmiersprache C++ geschaffen.
C vereinigt zwei vorderhand widersprüchliche Anforderungen: C ist sowohl eine maschinennahe (Maschinensprache) als auch eine höhere Programmiersprache. Als maschinennahe Sprache erlaubt C eine Hardware-orientierte Programmierung, welche die Gegebenheiten optimal nutzt, indem sie sich gut an die Rechnerarchitektur anpasst (z. B. sind Register-, Inkrement- und Dekrementoperationen möglich). So erleichtert C das Erstellen von Compilern, Betriebssystemen und Programmen für die Realisierung der Benutzerschnittstelle und ersetzt in diesen Bereichen den Assembler. C ist aber auch eine höhere Sprache, d. h., sie ist unabhängig von einem bestimmten Betriebssystem oder einer Rechnerplattform und der Programmierer muss sich nicht um die Einzelheiten des verwendeten Computersystems kümmern.
Als Lehr- und Ausbildungssprache ist C (und die spätere Erweiterung C++) nur beschränkt geeignet, da C schwer lesbare Schreibweisen gestattet und kaum Möglichkeiten zur Überprüfung der Syntax bietet.
Ein großer Vorteil von C liegt darin, dass die gängigen C-Compiler sehr effizienten Maschinencode erzeugen können (sowohl was die Laufzeit als auch was die Programmgröße betrifft). C-Programme werden also besonders schnell ausgeführt. Die C-Compiler selbst sind meist zur Gänze in C geschrieben. Da diese Compiler für die meisten Computerplattformen erhältlich sind und der Sprachumfang weitgehend standardisiert ist, lassen sich einmal erstellte Programme leicht auf andere Plattformen übertragen (portieren). Aus diesen Gründen wird der größte Teil der kommerziell erhältlichen Software in C/C++ geschrieben.
Der Sprachumfang ist klein: C kennt nur 31 reservierte Worte (bei Pascal sind es 38 und bei Ada 64). Dennoch weist C alle wesentlichen Elemente der höheren Programmiersprachen auf, etwa Verzweigungen (if...then...else), Schleifen, Funktionen, aber auch die Möglichkeit, eigene Datentypen zu definieren.
Die grundlegenden Datentypen von C sind ganze Zahlen verschiedener Länge (»int«, »short«, »long«), Fließkommazahlen mit verschiedener Genauigkeit (»float«, »double«), Zeichen (»char«) und Zeiger (Pointer) auf Werte eines bestimmten Datentyps. Boolesche Variablen kennt C nicht.
An strukturierten Datentypen unterscheidet C sog. Strukturen (Zusammenfassung mehrerer Datentypen zu einem neuen Datentyp) und Arrays (dt. Felder, d. h. eine Aneinanderreihung gleichartiger Datentypen mit einer Nummerierung durch einen Index von 0 bis n). Auf einzelne Elemente eines Felds kann nicht nur mithilfe des Index, sondern auch mithilfe von Zeigern zugegriffen werden, was die Lesbarkeit des Programmtexts erschwert, aber die effiziente Ausführung als Maschinenprogramm erlaubt.
Variablen müssen vor der Verwendung definiert werden. Dabei wird den Variablen Speicherplatz zugewiesen. Wird in einem Programmmodul eine Variable verwendet, die in einem anderen Modul bereits definiert ist, genügt anstelle der Definition eine sog. Deklaration, die Variable wird dann lediglich angemeldet, ohne dass Speicherplatz reserviert wird. Zusätzlich muss aber das die Variablendefinition enthaltende Programmmodul eingebunden werden (durch den Befehl »include«). Bei der Deklaration bzw. Definition einer Variablen sind der Datentyp und der Variablenname anzugeben. Zusätzlich kann eine besondere Speicherklasse gewählt werden, z. B. »register«, womit die Variable nach Möglichkeit in einem Register gespeichert wird, um die Zugriffsgeschwindigkeit zu erhöhen, oder »extern«, um darauf hinzuweisen, dass die Variable an anderer Stelle definiert ist, man aber im gesamten Programmteil auf sie zugreifen kann.
Zur Verknüpfung von Variablen und Zahlen besitzt C über 40 verschiedene Operatoren. Eine Anweisung in C kann dabei dicht gedrängt mehrere verschiedene Operatoren enthalten, die bei anderen Programmiersprachen jeweils eine eigene Programmzeile erforderlich machen würden. Beispielsweise wird bei der Anweisung »z = ++x + y++« infolge des vorgestellten »++« zuerst der aktuelle Wert von x um 1 erhöht, dann wird der neue Wert zum Wert der Variablen y addiert und das Ergebnis der Variablen z zugewiesen; wegen des der Variablen y nachgestellten »++« wird nach der Addition der y-Wert um 1 erniedrigt.
C arbeitet wesentlich mit Funktionen. Alle Unterprogramme, Programmmodule und sogar das Hauptprogramm sind als Funktionen realisiert. Auch die bei manchen anderen Programmiersprachen üblichen Prozeduren gehen in den Funktionen auf. Eine Funktion wird immer dann ausgeführt, wenn eine andere Funktion diese aufruft. Nur das Hauptprogramm ruft sich zu Beginn der Programmausführung selbst auf (es heißt immer main(), die Klammern kennzeichnen eine Funktion). Eine Funktion kann einen, mehrere oder auch keine Parameter enthalten; beim Aufruf übergibt das aufrufende Programm die aktuellen Parameterwerte an die Funktion. Aufgrund der geringen Zahl von Befehlswörtern sind in C auch viele Standardanweisungen, für die umfangreichere Programmiersprachen eigene Befehlswörter zur Verfügung stellen, als Funktionen realisiert, z. B. die Ausgabe von Daten auf dem Bildschirm als printf(). Alle Funktionen zu einem bestimmten Aufgabengebiet sind schließlich in einer eigenen Bibliothek zusammengefasst. So gibt es als Ersatz für die in C fehlenden Anweisungen für die normalen Eingaben und Ausgaben die sog. Standardeingabe-ausgabebibliothek, in der sich die entsprechenden Funktionen befinden. Sie gehört wie viele andere kleine Bibliotheken zum Lieferumfang von C. Man kann sich darüber hinaus weitere Bibliotheken für Spezialanwendungen beschaffen und für seine Programme verwenden oder auch selbst welche erstellen.
Ein Programm in C ist nun wie folgt aufgebaut: Am Anfang stehen die Anweisungen an den sog. Präprozessor, etwa welche Dateien aus einer Programmbibliothek eingebunden werden sollen. Dann folgen eine oder mehrere Funktionen, die den hauptsächlichen Programmtext enthalten. An deren Anfang befinden sich die Definitionen bzw. Deklarationen von Variablen, woran sich eine Folge von Anweisungen und Funktionsaufrufen anschließt.
C,
Mathematik: Ziffer im Hexadezimalsystem, die für den dezimalen Wert 12 steht.
III
C:,
Laufwerkszuordnung.
* * *
————————
C [Abk. aus lat. centum] = römisches Zahlzeichen für 100.
————————
Universal-Lexikon. 2012.