000
24.08.2006, 19:26 Uhr
2cHH
|
Hi,
ich beschäftige mich noch nicht so lange mit C. Auch wenn die meisten Tutorials heutzutage von C++ zu handeln scheinen, habe ich imho mittlerweile recht gute Literatur gefunden, z.B. als PDF "Softwareentwicklung in C" oder "Informatik und C", aber auch "Einführung in die Wintendo-Programmierung mit C".
Eine Sache (OK, es sind bestimmt noch ein paar mehr ) ist mir nicht klar geworden:
Wenn eine Datei "function.c" als Modul fungiert, also funktionen anbietet, muss eine andere Datei, nennen wir sie mal "main.c", den Header von "function" einbinden, damit der Linker die Verweise auf Funktionen und eventuelle globale Variablen (pfui) zuordnen kann. "function.c" hat also eine Headerdatei "function.h", in der diese Sachen deklariert werden. Damit diese Deklarationen für die Datei "main.c" durch das "#include "function.h" nicht zur Definition werden, wird die Speicherklasse "extern" Verwendet.
Wenn jetzt aber "function.c" seine eigenen Header einbindet, ist in dem Fall doch extern falsch, oder nicht? Darf eine Datei dann nicht mehr ihren eigenen Header einbinden? In dem Beispiel auf Seite 82 von "Softwareentwicklung in C" wird das aber so gemacht. Ich habe mir mal die Header bei MinGw gcc angesehen, "extern" taucht da imho eher selten auf. Kann auch sein, dass ich das ganze irgendwie noch nicht durchschaut habe.
Ist eine Datei, die einen eigenen Header hat, ein Modul?
Was ich eigentlich wissen möchte ist, wie funktioniert der Datenaustausch und Funktionsaufruf zwischen Dateien untereinander über Header genau.
MfG aus HH -- greetz, 2cHH _____________ |