Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

22.02.2007, 12:17

was bringt self-include?

aus einer datei tCommandLine.h

C-/C++-Quelltext

1
2
3
4
5
6
7
#ifndef     TCOMMANDLINE_H_INCLUDED
#define     TCOMMANDLINE_H_INCLUDED

// self include

#ifndef     TCOMMANDLINE_H_INCLUDED
#include    "tCommandLine.h"
#endif


jetz stellen sich mir 2 fragen:
1) wieso sollte sich eine header selber inkludieren
2) das 2. ifndef wird doch nie erreicht weil TCOMMANDLINE_H_INCLUDED vorher immer definiert wird...

ChrisJ

Alter Hase

Beiträge: 487

Wohnort: Schweich

Beruf: Schüler

  • Private Nachricht senden

2

22.02.2007, 13:04

da fehlt noch ein #endif...

Das Gurke

Community-Fossil

Beiträge: 1 996

Wohnort: Pinneberg

Beruf: Schüler

  • Private Nachricht senden

3

22.02.2007, 13:44

Das fehlende endif schert doch garnicht ;)

Ich würde spontan sagen ein Self Include bringt einfach garnix Oo Hab mal danach gegooglet, keine (für mich) sinnvollen Ergebnisse.

4

22.02.2007, 13:51

hm, jetz bin ich irgendwie unbefriedigt :D

Das Gurke

Community-Fossil

Beiträge: 1 996

Wohnort: Pinneberg

Beruf: Schüler

  • Private Nachricht senden

5

22.02.2007, 13:54

Glaub bloss nicht ich hätte Ahnung Oo Wenn du mal danach googlest wirst du einige Newsgroup postings finden in denen dieses self include auftaucht, stellenweise sogar bei bekannteren Projekten. Irgend einen Sinn wird es schon haben ^^

Nox

Supermoderator

Beiträge: 5 272

Beruf: Student

  • Private Nachricht senden

6

22.02.2007, 14:47

Woher hast du das überhaupt?
PRO Lernkurs "Wie benutze ich eine Doku richtig"!
CONTRA lasst mal die anderen machen!
networklibbenc - Netzwerklibs im Vergleich | syncsys - Netzwerk lib (MMO-ready) | Schleichfahrt Remake | Firegalaxy | Sammelsurium rund um FPGA&Co.

riCo

Treue Seele

Beiträge: 165

Beruf: Student

  • Private Nachricht senden

7

22.02.2007, 15:32

An der Stelle bringt dir das gar nichts.. wüsste auch nicht wofür sowas gut sein soll. Innerhalb des Headerguard solltest du meines Wissens nach immer alles direkt einbinden können. Das zweite #ifndef macht ja nichts anderes als das erste. Ich seh da keinen Sinn..
Wir leben alle unter dem Sternenhimmel, aber wir haben nicht alle den gleichen Horizont.

8

22.02.2007, 15:36

Sobald du die Header includest wird sie bei dir schon definiert, also TCOMMANDLINE_H_INCLUDED. Außerdem was soll das bringen, eine Header sich selbst zu includen?
http://www.pennergame.de/functions/generate_signature_114955.jpg

Wo die Fähigkeiten aufhören ... fängt der Optimismus an

"Unendlichkeit ist der Mangel an Grenzen" Aristoteles

Firefly

Alter Hase

Beiträge: 484

Wohnort: Irgendwoundnirgendwo

  • Private Nachricht senden

9

22.02.2007, 16:53

vielleicht im falle von sowas:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
class Class1
{
public:
void Test(Class1 *pClass1, Class2 *pClass2);
};
class Class2
{
public:
void Test(Class1 *pClass1, Class2 *pClass2);
};


wobei das auch irgendwie sinnlos wäre, Vorwärtsdeklaration wäre besser...

10

22.02.2007, 19:28

Zitat von »"Nox"«

Woher hast du das überhaupt?


aus dem sourcecode von armagetron von sourceforge.net :)

Werbeanzeige