Re: Preprocessor: Einbinden von Header Dateien

Andre Heine <[email protected]>
Newsgroups gmane.linux.suse.programming
Organization none
Message-ID <[email protected]>
Hallo Thomas,

ich spare mir jeglich Angriffe und entschuldige mich für jeden!

Eigentlich sehe ich nur kein wirkliches Problem...

Am Dienstag, 18. November 2008 10:19 schrieb Thomas Hertweck:
> Andre Heine wrote:

[...]

> > _SECOND_H existiert ja schon....
>
> Um das geht's doch gar nicht, Du hast das Problem schlicht nicht
> verstanden.

Irgendwie geht es aber doch darum.

Man fragt sich, welcher Header zuerst eingebunden wird.

Was willst Du denn? 

Aus Deinem ersten Posting entsteht doch die Frage nach der "Sortierung" der 
includes...

Welcher Header wird denn eingebunden?
Warum? Warum nicht?

Und wie lassen sich beide gleichzeitig einbinden?

Warum möchte man das?

> Es geht nicht um ein Problem, dass ein Header zwei Mal 
> eingebunden wird - 

Das habe ich auch nicht so gemeint...

Es geht darum, dass Du ein "Header" lokal duplizieren möchtest
um eventuell Funktionalität in einem Modul zu überschreiben.
(Der Rest soll alle so wie gehabt benutzen????)

Und das "gewollt", so steht es jedenfalls in Deinem ersten Posting!

Es ist nunmal kein wirklicher Normalfall. Es kommt nicht nur darauf an,
welcher Header zuerst eingelesen wird, sondern auch an welcher stelle
das include in der jeweiligen Datei steht. (Cross,doppelte, etc pp)

Darum ist es ein Unterschied, ob nun zuerst "second.h" und anschliessend
"first.h" eingebunden werden muss. Das hängt nunmal auch mit den Include 
Guards zusammen...

Darauf wollte ich hinweisen, das ist ein Problem mit der Organisation
des Buildsystemes...

Der Teufel steckt nunmal im Detail...

IMHO...


> um das zu verhindern sind naemlich Include-Guards 
> da. 

"Include Guards" spielen hier aber eine entscheidene Rolle...

> Es geht schlicht darum, welches File second.h eingebunden wird, 
> und ob der Compiler die Datei einbindet, die man als User erwarten
> wuerde. Ich sage nein,

Ich sage "ja", alles funktioniert bestens mit der include Reihenfolge...

Würden die Guards fehlen, gibt es ja wiederum eine Fehlermeldung wg.
doppelt definierter Makros.

Es hängt irgendwie alles zusammen;)

> andere sagen nein, manche sagen eventuell, 
> nur ganz wenige sagen ja, der Praeprozessor macht genau das, was man
> erwarten wuerde. Go figure!
>
> > [...]
> > So so... Programmieranfaenger?!
> >
> > Da spricht der Doktor :-\
>
> Deine Angriffe spare Dir bitte. Verstehe erst einmal das Problem,
> dann kannst Du vielleicht mitdiskutieren.

S.o. Bitte entschuldige...

Verstehe Du aber auch, das es nicht nur mit der Reihenfolge getan ist und
Dein erstes Posting so einiges offen lässt...

Man kommt damit nämlich sehr leicht von einem zum anderem...


Friede!

Andre
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.