WikiDer > C (Programmiersprache)

C (programmeertaal)
C
C
ParadigmaImperativ
erschien1972
Entworfen vonDennis Ritchie
Entwickelt vonDennis Ritchie und Bell Labs
Typensystemstatisch, schwach
ImplementierungenGCC, FRAU visuelles C ,
Beeinflusst vonB, BCPL, Algol 68, PL/1[1]
Einfluss aufAWK, C , Ziel c, d, perl
BetriebssystemMultiplattform
Dateierweiterungen.h, .c
Portal  Portalsymbol  Informatik

Die Programmiersprache C ist ein zwingende Programmiersprache, basierend auf ProgrammierspracheB, die selbst wieder BCPL beruhte. Es ist eine sehr praktische Programmiersprache, die mehr ist algol ähnelt anderen Vorgängern, wie - in historischer Reihenfolge - fortran, lispeln, COBOL und BASIC.

Ebenfalls Pascal ist eine Vereinfachung von Algol, aber in eine andere Richtung. Während Pascal mehr Abstand von der zu bearbeitenden Maschine nimmt, steht C in der Nähe der Maschine; es ist relativ "niedrig".

Der Einfluss von C ist so groß, dass seitdem die meisten neuen Sprachen wie C , Ziel c, Java, Javascript, C# und PHP verwenden weitgehend die C-Syntax.

Funktionen auf einen Blick

Datentyp

C hat typisierte Daten, erlaubt aber die Konvertierung. Die Konvertierung kann mittels sogenannter Casts erfolgen, die Datentypen müssen nicht gleich groß sein, dies wird jedoch empfohlen. Die Datendarstellung eines Typs auf der Maschine wird nicht durch die Sprache diktiert; eine Variable vom Typ int (eine Abkürzung des Englischen ganze Zahl, was "Ganzzahl" bedeutet) können sich also zwischen verschiedenen Maschinen unterscheiden und beispielsweise 16 oder 32 Bit lang sein.

Programmstruktur

Die Sprache C ist prozedural. Der gesamte Code ist Teil von a Funktion. Das Hauptprogramm namens 'main' ist selbst eine Funktion.

Die Schleifenkonstrukte sind for, while und do-whileAussagen. EIN gehe zu-Anweisung ist ebenfalls verfügbar, aber von ihrer Verwendung wird abgeraten, mit Ausnahme von Fehler-Exit-Konstrukten. C funktioniert auch mit logischen Operatoren wie und (&&), oder (||) und nicht (!) und der wennAnweisung, deren if-else-Version als Bedingung gekürzt wird?Anweisung:Anweisung; geschrieben werden kann.

Es gibt eine Reihe von Erhöhungs- und Verringerungsoperatoren, die vielen gemeinsam sind Prozessoren als Maschinensprachanweisungen auf Array-Operationen verlinkt werden (zum Beispiel a = b[x]; bedeutet: a bekommt den Wert in b[x] und x wird dann um 1) erhöht. Für viele Prozessoren (die Intel 80x86-Familie, die Motorola 68000Familie) ist dies eine einzelne Maschinensprache-Anweisung.

Anweisungen werden mit einem Semikolon abgeschlossen. Indizes von Arrays beginnen bei Null.

Zeiger

sehen Pointer (Programmierkonzept) für den Hauptartikel zu diesem Thema.

C bietet direkten Zugriff auf den Speicher mithilfe von Zeigern. Ein Zeiger ist eine Variable, die eine Speicheradresse enthält. Diese Speicheradresse enthält die eigentlichen Daten. Dies kann wieder ein Hinweis sein. Dies zu nutzen hat eine Reihe von Vorteilen. Zum Beispiel kann man einen Zeiger an eine Funktion übergeben, damit diese die Variable, auf die der Zeiger zeigt, direkt ändern kann. Dies ist hinsichtlich der Speichernutzung von Vorteil, da keine Kopie der Variablen erstellt werden muss und keine globalen Variablen vom Programmierer definiert werden müssen. Allerdings gibt es auch Fallstricke: Wenn Sie einen Zeiger vorzeitig ändern, dh bevor der Speicherplatz freigegeben wurde, kann das Programm nicht mehr auf den Speicherplatz zugreifen, auf den der Zeiger zeigte. In einem solchen Fall spricht man von a Speicherleck (Speicherleck). Auch das Umgekehrte kann passieren: Ein Speicherplatz wird freigegeben, während Zeiger noch darauf zeigen. Die Verwendung eines solchen Zeigers ergibt normalerweise a Absturz.

Da Zeiger Speicheradressen enthalten und diese Speicheradressen nur Zahlen sind, kann man mit Zeigern rechnen:

#einschließen<stdio.h>// Dies ist eine Alternative zum Programm "hello world".intMain(Leere){constverkohlen*Aussage="Hallo Welt!";während(*Aussage){putchar(*Aussage);// füge einfach 1 hinzu}Rückkehr0;}

Die Syntax der Sprache ist ziemlich begrenzt, aber es gibt eine große Bibliothek mit Standardfunktionen verfügbar für z.B. String-Operationen (Text wird in C behandelt wie a Array von Zeichen (Typ verkohlen, abgeleitet aus dem Englischen Charakter) jetzt sofort nullbyte Schlussfolgern). Arrays können in C angenähert werden als Zeiger.

Hallo Welt

Als Beispiel der Klassiker Hallo Welt-Programm in c.

#einschließen<stdio.h>// Laden Sie die Standardbibliothek für Ein- und Ausgabefunktionen (stdio.h)/* starte die main()-Funktion und gebe an, dass diese Funktion einen Wert wie . zurückgibt * Ganzzahl (int), hat aber keine Argumente (void). Der Wert, den * von der Funktion main() zurückgegeben ist der Exit-Code des Programms. */intMain(Leere){/* Verwenden Sie die Druckfunktion "printf()", um "Hallo Welt!" darauf drucken     * Bildschirm. Das '' steht für Newline ("newline"). Die Definition von     *printf kommt von stdio.h. */druckenf("Hallo Welt!");Rückkehr0;// Programm mit Exitcode 0 beenden.};

Vor- und Nachteile von C

Wie bereits erwähnt, ist C eine Sprache, die der Hardware ziemlich nahe kommt. Das hat sowohl Vor- als auch Nachteile. Vorteile sind, dass C für alles verwendet werden kann und relativ schnell ist.

Nachteile sind, dass die Sprache wenig Fehler verzeiht und der C-Compiler nur wenige Prüfungen durchführt (obwohl diese Prüfungen noch mit verschiedenen Tools durchgeführt werden können). Ein vom C-Compiler als korrekt befundenes C-Programm muss nicht unbedingt einwandfrei funktionieren. Eine Ursache vieler Probleme ist hier die Verwendung von Zeigern; deshalb diese in abgeleiteten Sprachen wie Java und C# wurden weggelassen.

Ein bekanntes Sprichwort über C ist "C bietet alles, was Sie zum Aufhängen brauchen" ("C liefert alle Seile, die Sie zum Aufhängen brauchen"). Mit C kann man viel machen, aber nur, wenn man weiß, was man tut. Daher ist diese Sprache in der technischen Welt weit verbreitet.

Betriebssysteme wenn Unix und Fenster sind meist in C geschrieben. Oft wird eine Kombination aus C und verwendet C , Wie mit Fenster, wobei C für . verwendet wird Kernel und C für die anderen Komponenten. Eine andere häufig verwendete Alternative ist eine Kombination aus C und (embedded) Assembler, dies spiegelt sich in der Linux-Kernel, dieser ist fast vollständig in C geschrieben mit einigen niedriges NiveauGeschäft im Assembler. Für fast jeden Prozessor und Mikrocontroller ein C-Compiler ist verfügbar. Aus diesem Grund hat die Sprache C einen hohen Anteil an professionellen Programmierern.

Siehe auch

Literatur

Wikibooks hat mehr zu diesem Thema: Programmierkurs in C.