Hello World (Teil 1)
Ziele:
-
Umgang mit Compiler und Linker
-
Was passiert beim Ã?bersetzen eines C-Programmes?
-
Interner AST
-
Erzeugung von Assembler Code
-
Erzeugung von Maschinen Code
-
Linken mit System Bibliotheken
-
Unser erstes C-Programm
Traditionell beginnt man das Erlernen einer neuen Programmiersprache mit einem Programm das den Text Hello world! ausgibt.
Source Code
int printf(const char *, ...); int main() { printf("Hello world!\n"); return 0; }
Diese Programm abtippen. In diesem Zuge sollt ihr auch euren Lieblingseditor richtig einrichten:
-
Eigentlich unsichtbare Zeichen wie Tabs sollen vom Editor angedeutet werden.
-
Ebenso Leerzeichen am Ende einer Zeile.
Übersetzen
Im Terminal wird mit
$shell> gcc -Wall helloworld.c $shell>
ein ausführbares Programm a.out erzeugt. Welche einzelnen Schritte dabei intern durchgeführt werden sehen wir später. Folgende Option wurde benutzt:
-Wall |
-W steht für Warning. Damit sollen alle Warnungen ausgegeben werden. |
Ausführen
Nun kann das erzeugte Programm ausgeführt werden:
$shell> ./a.out Hello world! $shell>
Damit ist der erste Schritt getan.
-
Wieso muss man (eventuell) a.out mit ./a.out ausrufen und nicht einfach nur mit a.out?
-
Löscht im Source Code die Zeile mit return 0.
-
Übersetzt einmal mit -Wall und einmal ohne -Wall.
-
Fügt die Zeile wieder ein.
-
-
Ändert den Compiler Aufruf so, dass das ausführbare Programm helloworld heisst.
-
Führt das Programm aus. Gebt anschliessend im Terminal echo $? ein. Ändert im Source Code das Return Statement in return 42. Wiederholt das Spiel.