Franz Pucher / TINF

You are viewing an older revision! See the latest version

Anatomie eines ANSI C Programmes

Inhalt

 /* Kommentare */
#include <stdio.h>

int main(void) {
	printf("Hello Bulme\n");   // Kommentar bis zum Ende der Zeile
	return 0;
}
main()ist das Hauptprogramm in Gestalt einer Funktion und besteht aus einer Gruppe zusammengehörender Anweisungen (statements) oder Befehlen (instructions). Sie muss vorkommen bzw. darf nur ein einziges Mal vorkommen und ist der Teil des Programms, der beim Start ausgeführt wird. Das Betriebssystem ruft diese Funktion auf, wenn das Programm gestartet wird.
voidsteht für einen „leeren“ Datentype und bedeutet, dass keine Werte vom Betriebssystem erwartet werden. Steht z.B. void main() so wird kein Ergebnis an das Betriebssystem zurückgegeben.
{ }geschweifte Klammern stehen am Anfang und Ende der Funktion. Alles was ein Programm macht wird zwischen der ersten und der dazugehörigen letzten geschweiften Klammer beschrieben und als Funktionskörper (function body) bezeichnet.
printf()printf() ist eine Funktion, die in der Headerdatei stdio.h deklariert ist. Deswegen kann der Compiler, wenn Sie diese Headerdatei nicht im Programm angegeben haben, nichts mit printf() anfangen. Mit der Funktion printf() kann eine beliebige Stringkonstante formatiert auf dem Bildschirm ausgegeben werden.
Semikolon(;)zeigt das Ende einer Anweisung an. Der Compiler weiß dann, hier ist das Ende der Anweisung von printf() und fährt nach der Abarbeitung der Anweisung fort.
return 0;gibt 0 an das Betriebssystem zurück, das heißt alles OK!
#includePräprozessor Direktiven: C/C++ besitzt nur kleinen Kern (core) von eingebauten Befehlen. Der Rest ist in Bibliotheksfunktionen (standard library file) implementiert. Nachdem mit der #include-Anweisung das headerfile zur Bibliothek stdio eingebunden wurde, können wir nun die Funktion printf() nutzen, der Text auf den Bildschirm ausgibt (z.B. printf()ist deklariert in stdio.h).
\nist ein Steuerzeichen (Escape-Sequenzen) in Zeichenkonstanten hier: NL (newline) – Cursor geht zum Anfang der nächsten Zeile.
/* */Kommentare werden beginnend mit zwei Schrägstrichen (bis zum Zeilenende oder zwischen /* Hier steht der Kommentar */ geschrieben.

Das Hello World-Programm für Mikrocontroller ist typischerweise ein LED-Blink Programm und sieht meist folgendermaßen so aus wie das in der mbed-Umgebung verwendete:

#include "mbed.h"

DigitalOut myled(LED1);    //  Instanziierung des Objekts myled

int main() {
    while(1) {
        myled = 1;
        wait(0.2);
        myled = 0;
        wait(0.2);
    }
}

Oder im mbed Simulator:

#include "mbed.h"

DigitalOut led(LED1);     // Instanziierung des Objekts led

int main() {
    while (1) {
        led = !led;
        printf("Blink! LED is now %d\n", led.read());   // Zugriff auf die Methode read über den "."-Operator

        wait_ms(500);
    }
}

Wo liegen die Unterschiede?


All wikipages