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

Anonymous

unregistriert

11

29.11.2005, 08:36

define

Mir sind die Vorteil bzw. Nachteile von define schon klar.
Meine Frage war eigentlich "nur" ob es eine Möglichkeit gibt eine undefinierte Anzahl an Parameter mit define zu handeln.

Das Problem ist folgendes.

<Funktion>

void writeLog(short Typ, const char* msg, ..... );


#ifdef _DEBUG
#define LOG
#else
#define LOG(typ,msg,....)
#endif

<programmcode>
int main()
{
LOG(1, "Das ist ein %s", "Demo" );
return 1;
}

Führt man nun den Code in der Debug aus, aus ist das kein Problem, in der Release kann das define jedoch nicht richtig aufgelöst werden. Klar weil das define ... nicht kennt. Deshalb meine Frage gibt es hier eine Möglichkeit.

__stdcall*

Treue Seele

Beiträge: 101

Wohnort: Dauchingen

Beruf: Schüler

  • Private Nachricht senden

12

29.11.2005, 13:36

Hi,

meinst du villeicht so etwas (eine Variable Parameterliste) ?

C-/C++-Quelltext

1
void Funktion(char*, ...);


__stdcall*

Anonymous

unregistriert

13

29.11.2005, 14:06

Lemming
Für Bitflags??

Anonymous

unregistriert

14

29.11.2005, 14:22

http://www.zfx.info/DisplayThread.php?MID=203699

Sorry, aber Crossposting ist verarsche. Steck Dir Deine gewünschte hilfe sonst wo hin. Wo sind wir denn hier?

Lemming

Alter Hase

Beiträge: 550

Beruf: Schüler

  • Private Nachricht senden

15

29.11.2005, 19:53

Zitat von »"nix da"«

Lemming
Für Bitflags??
Ich habs jetzt einfach mal ganz naiv bitflags genannt :angel:

Ich zeigs mal an nem Beispiel.
gemeint is sowas hier:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#define DIR_FORWARD (0x00000001)
#define DIR_REWARD  (0x00000002)
#define DIR_LEFT    (0x00000004)
#define DIR_RIGHT   (0x00000008)
// ...


struct WAYPOINT
{
    DWORD dwAbleDirections; 
    vector3  vPosition;
    // ...

};

WAYPOINT wp;
wp.dwAbleDirections = DIR_FORWARD | DIR_LEFT | /*...*/;


ich weiß du magst keine typedefs...
und mit consts in nem namespace wärs auch schöner....
ich machs mittlerweile auch mit consts, aber hier is #define schon noch ne relativ gute lösung.
Es gibt Probleme, die kann man nicht lösen.
Für alles andere gibt es C++...

Anonymous

unregistriert

16

29.11.2005, 19:56

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
const unsigned long DIR_FORWARD = 0x00000001L
const unsigned long DIR_REWARD  = 0x00000002L 
const unsigned long DIR_LEFT    = 0x00000004L 
const unsigned long DIR_RIGHT   = 0x00000008L 
// ... 


struct WAYPOINT 
{ 
    DWORD dwAbleDirections; 
    vector3  vPosition; 
    // ... 

}; 

WAYPOINT wp; 
wp.dwAbleDirections = DIR_FORWARD | DIR_LEFT | /*...*/;

Für konstanten #definie, igitt.

Lemming

Alter Hase

Beiträge: 550

Beruf: Schüler

  • Private Nachricht senden

17

29.11.2005, 23:04

nix da
na gut, ich benutzt das ja schon ne weile nich mehr :angel:
aber ich finds nich so schlimm, wie

C-/C++-Quelltext

1
#define min(x,y) (x<y)?(x):(y)

genau das hat mich letztens stunden gekostet, weil ich nen variable min genannt hab....

aber ich würd nie ne variable DIR_FORWARD nennen. deshalb find ichs nich ganz so schlimm
Es gibt Probleme, die kann man nicht lösen.
Für alles andere gibt es C++...

Anonymous

unregistriert

18

29.11.2005, 23:11

Lemming
Fragen wir mal so, welcher Datentyp ist dieser hier?

C-/C++-Quelltext

1
#define VALUEX 5

int, unsigned int, long, unsigned long, signed, unsigned, char, wchar_t, float, double, long double? was ist er?

Mit define spielt man mit dem Feuer vom Teufel und damit verbrennt man sich schnell und immer.

Lemming

Alter Hase

Beiträge: 550

Beruf: Schüler

  • Private Nachricht senden

19

30.11.2005, 15:37

nix da
ich seh's ja ein :wirbel: :roll:

#define is plöth :angel:
Es gibt Probleme, die kann man nicht lösen.
Für alles andere gibt es C++...

Nox

Supermoderator

Beiträge: 5 272

Beruf: Student

  • Private Nachricht senden

20

30.11.2005, 16:00

@ nix da kennst du des Teufels Advokat(oder so ähnlich)? Da taucht der Teufel in der Kirche seinen Finger in Weihwasser und grinst }>
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.

Werbeanzeige