Größe: 2861
Kommentar:
|
← Revision 74 vom 2011-01-30 18:28:48 ⇥
Größe: 850
Kommentar: den alten Link mit einen frischen ersetzt
|
Gelöschter Text ist auf diese Art markiert. | Hinzugefügter Text ist auf diese Art markiert. |
Zeile 5: | Zeile 5: |
werden, die einem viel Arbeit abnehmen, da C selbst nichteinmal so ohne weiteres eine einfache | werden, die einem viel Arbeit abnehmen, da C selbst nicht einmal so ohne weiteres eine einfache |
Zeile 8: | Zeile 8: |
Dafür hat C den Vorteil, daß man darin auch Performance-kritische Dinge wie Betriebssystem-Kerne und das Betriebssystem noch dazu programmieren kann. Unix in all seinen Ausprägungen ist fast komplett in C geschrieben. Ja, C wurde eigentlich erst erfunden, um darin die ersten (halbwegs portablen) Unix-Kerne zu schreiben. |
''Nachtrag:'' |
Zeile 13: | Zeile 10: |
Linux bringt schon alle wichtigen Sachen mit, um ein C-Programm zu schreiben. Da wären ein einfacher Editor und der Compiler, z.b. gcc. Ich persönlich benutze Kate aus der Distribution ['SuSE'] unter KDE. Verschiedene Befehle werden dort gleich bei der Eingabe farblich unterlegt. |
Die Bedeutung der Bibliotheken wird meist überschätzt. Gerade der Lib-Code der ''glibc'' ist für die meisten Anwendungen zu aufgebläht. Und natürlich kann man mit ''C'' ohne zusätzliche Libs direkt Zeichen ausgeben: |
Zeile 16: | Zeile 13: |
Das erste C-Programm, hello.c | |
Zeile 18: | Zeile 14: |
/*************************/ /* Einführung */ /*************************/ #include <stdio.h> int main(void) { printf("Hello World!\n"); return 0; } |
mini:~$ cat >test.c <<EOF > main() { > write(1,"zeichen\n",8); > } > EOF mini:~$ gcc -o test test.c mini:~$ ./test zeichen mini:~$ |
Zeile 32: | Zeile 25: |
So, nach dem Speichern muß das Programm kompiliert, also in etwas machinenlesbares übersetzt werden. Dazu verwendet man einen Compiler. Dort erfolgt die Eingabe {{{ $ cc -o hello hello.c $ ./hello Hello World! $ }}} |
== Links == |
Zeile 41: | Zeile 27: |
Diese Befehlszeile ruft den C-Compiler (cc) auf und sagt ihm, daß er den Quelltext hello.c kompilieren und daraus das ablauffähige Programm hello (-o) erzeugen soll. Dieses kann nach einem erfolgreichen Kompiliern einfach gestartet werden. Jetzt haben wir ein kleines Programm geschrieben aber was bedeuten die einzelnen Befehle ? {{{ /* }}} gibt dem Compiler an dass die folgende Zeichenfolge ein ''' Kommentar '''ist. Dieser Komentar wird wieder mit den Zeichen {{{ */ }}} beendet. Mit kommentaren sollte man nicht sparsam umgehen weil sie für die lesbarkeit von Programmen sehr hilfreich sind. Allerdings sollte man Programme auch nicht totkommentieren. Der nächste Befehl {{{ #include <stdio.h> }}} bezeichnet eine sogenannte header datei. Dabei ist stdio die standard input output Datei die dem Compiler mitteilt dass in diesem Programm etwas ein bzw. etwas ausgegeben wird. {{{ int main(void) }}} kennzeichnet den Programmanfang ( main wie hauptteil ) der zu main gehörende Programmteil ist in geschweiften klammern gesetzt. { Programmanfang und } Programende. Die Bildschirmausgabe wird mit ''' printf("Text") ''' möglich. ---- Da die Entwicklung von Unix und C nicht voneinander zu trennen ist, finden sich auch unter Linux die wichtigsten C-Befehle in den man-pages, also einfach mal so etwas eingeben wie: {{{ $man printf $man puts $man system }}} - RG |
[[http://www.c-howto.de/|C-HowTo - Programmieren in C]] |
Die C Programmiersprache
C an sich ist eine recht einfach zu lernende, prozedural-imperative Sprache. Damit man nicht immer das Rad neuerfinden muß, können Bibliotheken mit Funktionen (die sog. Libs oder Libraries) benutzt werden, die einem viel Arbeit abnehmen, da C selbst nicht einmal so ohne weiteres eine einfache Zeichenfolge auf den Bildschirm bringen kann.
Nachtrag:
Die Bedeutung der Bibliotheken wird meist überschätzt. Gerade der Lib-Code der glibc ist für die meisten Anwendungen zu aufgebläht. Und natürlich kann man mit C ohne zusätzliche Libs direkt Zeichen ausgeben:
mini:~$ cat >test.c <<EOF > main() { > write(1,"zeichen\n",8); > } > EOF mini:~$ gcc -o test test.c mini:~$ ./test zeichen mini:~$