Include Dateien einbinden

#1129099
Lesenswert?

was muss ich beachten wenn ich in meinem Programm selberstellte Include 
Dateien einbinden will.
Konkretes Beispiel..
Ich habe eine Datei mit dem Namen TEXT.h in der einfach nur steht: cout 
<< "gib diesen verdammten Text endlich aus" ;

Versuche ich diese Datei mittels Include in Programm einzubinden mit 
include "Text.h" (Datei steht im Verzeichniss wo auch das Programm ist)
will das irgendwie nicht so recht gelingen.
#1129181
Lesenswert?

Es geht ja jetzt nur um das verstehen des einbindens.
Falls es weiterhilft der Compiler gibt folgende Meldung aus:

17 C:\Dev-Cpp\includesinus.cpp In file included from 
C:\Dev-Cpp\includesinus.cpp
12 C:\Dev-Cpp\TEXT.h expected constructor, destructor, or type 
conversion before '<<' token
12 C:\Dev-Cpp\TEXT.h expected `,' or `;' before '<<' token
(Firma: DB1FW) Persönliche Seite #1129201
Lesenswert?

Überlege es Dir mal folgendermassen.

ein #include wird vom Preprozessor gemacht. Der eigentlich compiler 
bekommt das gar nicht mit.

Die kannst Dir vorstellen, dass der Preprozessor dort wo "#include 
<xxx.h>" steht, wirklich den Inhalt der Datei xxx.h in Deinen Sourcecode 
hineinkopiert.

Du hast z.B.
1
#include "TEXT.h"
2

3
int  main(void)
4
{
5
   ....
6
}

daraus wird
1
cout << "gib diesen verdammten Text endlich aus" ;
2

3
int  main(void)
4
{
5
   ....
6
}

Und - wie Stefan schrieb - die "cout" Anweisung steht im Nirwana.

In die .h Datei soll nur das rein, was an der Stelle, an der das 
#include steht, auch hin dorf und Sinn macht.


Natuerlich könntest Du so was machen :
1
int  main(void)
2
{
3
#include "TEXT.h"
4

5
   ....
6
}

Würde wohl gehen -
aber das ist nicht der Sinn von .h Dateien. Das macht man nicht.
#1129534
Lesenswert?

das dass wenig Sinn macht ist mir schon in dem Fall klar. Ich versuche 
hier nur ein Beispiel durzuarbeiten was in einem Buch beschrieben ist 
(natürlich nicht mir dem Text da oben ;-) ). Ich habe die Include 
Anweisung in der Main Funktion, aber irgendwie macht das der Compiler 
nichtmit, und bricht mit der obrigen Fehlermeldung ab. Mir geht es 
momentan mehr darum wo da der Fehler liegt. Ob das cout in der Text.h 
jetzt Sinn macht oder nich, soll jetz mal beiseite gestellt werden. Sinn 
macht die Include Text.h mit sicherheit nicht.
#1129540
Lesenswert?

Ingo Laabs wrote:

> nichtmit, und bricht mit der obrigen Fehlermeldung ab. Mir geht es
> momentan mehr darum wo da der Fehler liegt.

Der Fehler liegt daran, dass du noch nicht verstehst, wie das 
Zusammenspiel von Präprozessor und eigentlichem Compiler vonstatten 
geht.

> Ob das cout in der Text.h
> jetzt Sinn macht oder nich, soll jetz mal beiseite gestellt werden.

Genau darum gehts aber.
Die Ausgabeanweisung macht an dieser Stelle absolut keinen Sinn und ist 
dort auch nicht erlaubt. Es spielt jetzt keinerlei Rolle, ob du die 
Ausgabeanweisung direkt in deinem includesinus.cpp drinnen stehen hast, 
oder ob die Anweisung über einen #include reingezogen wird. Letztendlich 
sieht der Compiler eh in beiden Fällen dasselbe: Eine Anweisung die 
nicht in einer Funktion enthalten ist.

Und da der Compiler davon ausgeht, dass du das weißt und keinen dummen 
Fehler gemacht hast, versucht er dir in seiner Fehlermeldung irgendwas 
anzubieten, was die Situation retten könnte. Das du wirklich nur einen 
dummen Fehler gemacht hast, hat er nicht erkannt. Und drum ist die 
Fehlermeldung für dich ziemlich nichtssagend.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren