Allgemeines zu C



Um mit dem Programmieren unter C anfangen zu können ist es wichtig, ein paar grundsätzliche, wenige Dinge zu wissen und zu beachten.

Kaum zu glauben ist, dass die Sprache C nur sehr wenige Funktionalitäten besitzt, die jedoch mittels fertigen oder selbst zu erstellenden Funktionssammlungen erweitert werden kann. Werden mehrere Dateien, die Funktionen beinhalten in einer Datei zusammengefasst, spricht man von Softwarebibliotheken.

Jedem C-Compiler (egal für PC‘s, unterschiedlichen Betriebssystemen oder auch für Mikrocontroller) liegen mehrere sogenannte Standardbibliotheken bei, die auf den jeweiligen Systemen verwendet werden können.

Dateien, die zusätzliche Funktionen für C bereitstellen sind üblicherweise zweigeteilt:

  • in Objektdateien (Dateiendung.o oder .rel) oder Bibliotheksdateien (Library, Dateiendung .a)
  • Headerdateien (Dateiendung .h)

Objektdateien sind bereits compilierte (übersetzte) Quellprogramme, die jedoch für sich kein eigenständiges Programm darstellen. In aller Regel stellen sie Funktionssammlungen (Unterprogramme) zur Verfügung, die im eigentlichen Programm verwendet werden können.

Objektdateien werden aus C-Programmcode compiliert. Dies geschieht u.a. auch deshalb, damit nicht immer wieder unveränderte Programmteile komplett übersetzt werden müssen (mitunter kann ein Compilieren einer Funktionssammlung je nach Umfang relativ lange dauern). Der Vorteil von compilierten Objektdateien ist, dass diese Objektdatei „nur“ noch dem Hauptprogramm hinzugefügt (gelinkt) werden muß. Zudem kann dieses Vorgehen ein Hauptprogramm lesbarer machen, bspw. muß man den Code einer Ausgabefunktion wie printf (relativ umfangreich) nicht sehen, man muß nur wissen, was diese Funktion bewirkt.

Eine programmierte Funktion in einer Quelldatei (Sourcecode, Dateiendung .c) wird als Definition bezeichnet. Das "Bekanntgeben" in einer Headerdatei, dass es eine Funktion, die hinzugelinkt wird, gibt, wird als Deklaration bezeichnet. Die bekannt gemachte Funktion selbst wird als Prototyp bezeichnet.

Der Erstellungsprozess, der aus mehreren Dateien ein ausführbares Programm (binary) erzeugt wird als build bezeichnet. An diesem Prozess sind mindestens 2 Programme (oder Programmteile) beiteiligt:
  • Compiler, der aus den Quelldateien die Objektdateien erstellt
  • Linker, der aus den Objektateien ein ausführbares Programm erzeugt. Hier sei angemerkt, dass es zwar explizite Linkerprogramme gibt, aber der Compiler (über Programmparameter) auch als Linkerprogramm fungieren kann.

Getting started