C ist eine der am häufigsten verwendeten Programmiersprachen - lernen Sie, wie Sie damit den Pi programmieren!
C ist eine sehr mächtige Sprache - es gibt nicht viel, für das Sie es nicht verwenden können - dennoch ist sie ziemlich einfach. Die Sprache selbst hat nur etwa 20 Schlüsselwörter, aber es gibt eine riesige Libary (Bibliothek) zusätzlicher Funktionen, die Sie bei Bedarf aufrufen können. In dieser Reihe konzentrieren wir uns auf das Erlernen der Schlüsselwörter, wobei einige der nützlicheren Bibliotheksfunktionen für ein gutes Maß eingesetzt werden.
Viele der Sprachen, die Sie möglicherweise gesehen haben, wie z. B. Python, werden als interpretierte Sprachen bezeichnet. Dies bedeutet, dass der von Ihnen geschriebene Code direkt ausgeführt wird: Jede Codezeile wird beim Ausführen eingelesen und interpretiert. C ist anders. Es ist eine kompilierte Sprache. Dies bedeutet, dass der von Ihnen geschriebene Code, der als Quellcode bezeichnet wird, niemals direkt ausgeführt wird. Der Quellcode wird durch ein Programm namens Compiler geleitet, das ihn in eine maschinenlesbare Version konvertiert, die als ausführbare Datei oder Binärdatei bezeichnet wird. Anschließend führen Sie die resultierende ausführbare Datei aus.
Dies mag komplex erscheinen, hat aber einige große Vorteile. Erstens bedeutet dies, dass Sie nicht auf jedem Computer, auf dem Sie Ihr Programm ausführen möchten, eine Kopie von C selbst benötigen. Nach der Kompilierung ist die ausführbare Datei eigenständig und in sich geschlossen. Zweitens werden beim Kompilieren viele Fehler festgestellt, bevor Sie das Programm überhaupt ausführen (normalerweise werden jedoch nicht alle gefunden). Am wichtigsten ist, dass der Kompilierungsprozess bedeutet, dass die zeitaufwändige Übersetzung von lesbarem Code in maschinenlesbare Anweisungen bereits erfolgt ist, was bedeutet, dass kompilierter Code im Allgemeinen um ein Vielfaches schneller ausgeführt wird als interpretierter Code.
Mit all dem, das Sie auf den Weg gebracht hat, dass C das Lernen wert sein könnte - werfen wir einen Blick auf das erste Programm, das jeder in einer beliebigen Sprache schreibt, welches „Hallo Welt“ auf dem Bildschirm druckt. Übrigens wurde die Tradition des Schreibens eines Hello World-Programms zuerst mit der Originaldokumentation eingeführt, die C selbst beschreibt. Denken Sie nur: kein C, keine Hallo Welt …
#include <stdio.h> void main (void) { /* Ein Druck-Befehl */ printf ("Hallo Welt!\n"); }
Hoffentlich nicht zu beängstigend! Schauen wir es uns Zeile für Zeile an.
#include <stdio.h>
Dies wird als Hash-Include bezeichnet. Wie oben erwähnt, verfügt die Sprache C über eine große Libary (Bibliothek) von Funktionen, die enthalten sein können, und wir müssen eine davon in diesem Programm verwenden - den formatierten Druckbefehl printf. Dies ist Teil der Standard-Eingabe-Ausgabe-Bibliothek, kurz stdio. Diese Zeile teilt dem Compiler mit, dass das Programm die stdio-Bibliothek als Teil des Kompilierungsprozesses benötigt.
void main (void)
C ist eine funktionsbasierte Sprache. Jedes Programm besteht aus einer Reihe von Funktionen.
Jede Funktion akzeptiert null oder mehr Argumente und gibt einen einzelnen Wert zurück. Eine Funktionsdefinition besteht aus einer Angabe dessen, was die Funktion zurückgibt - in diesem Fall eine Leere (void), einen Funktionsnamen (in diesem Fall main) und eine Liste von Argumenten in runden Klammern - wieder eine Leere (void).
Jedes C-Programm muss eine Funktion namens main enthalten. Wenn Sie das kompilierte Programm ausführen, wird zuerst die Hauptfunktion (main) ausgeführt.
Das Wort void wird als Typspezifizierer bezeichnet. Ein void ist ein spezieller Typ, der „kein Wert erforderlich“ bedeutet. Wir werden uns im nächsten Kapitel mehr mit Typen befassen.
Diese Zeile definiert also die Hauptfunktion für dieses Programm. Es gibt an, dass die Hauptfunktion keine Argumente akzeptiert und keinen Wert zurückgibt.
Der Code, aus dem die Funktion selbst besteht, steht zwischen den beiden geschweiften Klammern {}, die der Funktionsdefinition folgen.
/* Ein Druck-Befehl */
Zuerst haben wir einen Kommentar, der uns sagt, was los ist. Kommentare in C beginnen mit dem Symbol /* und enden mit */ - alles zwischen diesen beiden Symbolen wird vom Compiler ignoriert.
Der Code selbst besteht nur aus einer Zeile:
printf ("Hallo Welt!\n");
Dies ist ein Aufruf der Funktion printf („print formatiert“) aus der stdio-Libary. In diesem Fall wird ein einzelnes Argument verwendet, bei dem es sich um eine Textzeichenfolge handelt, die in doppelte Anführungszeichen eingeschlossen ist. Wie oben erwähnt, sind Funktionsargumente in runden Klammern eingeschlossen.
Beachten Sie, dass die Zeile mit einem Semikolon (;) endet. Alle Anweisungen in C müssen mit einem Semikolon enden. Dies teilt dem Compiler mit, dass dies das Ende einer Anweisung ist. Einer der häufigsten Anfängerfehler in C ist, irgendwo ein Semikolon zu vergessen!
Was ist mit der Zeichenfolge selbst? Der Hallo Welt! - Teil ist einfach, aber was ist mit \n am Ende? Denken Sie daran, dass diese Funktion als „print formatiert“ bezeichnet wird. Nun, das \n ist ein bisschen Formatierung. Es ist das Symbol für einen Zeilenumbruch. In dieser Zeile wird also die Zeichenfolge „Hallo Welt!“ gedruckt, gefolgt von einer neuen Zeile.
Lassen Sie uns dieses Programm kompilieren und ausführen. Raspbian enthält einen C-Compiler namens gcc, sodass nichts installiert werden muss. Starten Sie einfach Raspbian auf Ihrem Pi und schon können Sie loslegen. Verwenden Sie Ihren bevorzugten Texteditor, um eine Datei mit dem Namen hallo.c zu erstellen, kopieren Sie das obige Programm hinein und speichern Sie es. Gehen Sie dann von einem Terminal aus in das Verzeichnis, in dem Sie hallo.c gespeichert haben, und geben Sie Folgendes ein:
gcc –o myprog hallo.c
Dies ruft den gcc C-Compiler mit der Option -o myprog auf, die ihn anweist, eine ausführbare Ausgabedatei namens myprog zu erstellen und hello.c als Eingabequellcode zu verwenden.
Wenn Sie Ihren C-Code korrekt eingegeben haben (haben Sie sichergestellt, dass das Semikolon vorhanden ist?), Sollte dies ungefähr eine Sekunde dauern und Sie dann zur Befehlszeile zurückkehren. Im aktuellen Verzeichnis sollte sich jetzt eine Datei mit dem Namen myprog befinden. Versuchen Sie, sie auszuführen, indem Sie Folgendes eingeben:
./myprog
Et voila! Am Terminalfenster sollte nun stehen …
Hallo Welt!
Dies ist Ihr erstes C-Programm, das geschrieben, kompiliert und ausgeführt wird.
Im nächsten Kapitel werden wir C für etwas Nützlicheres verwenden …