0xFF?
-
Hi.
Habe mir ein Quellcode aus dem Internet runtergeladen.
Diese Stellen konnte ich nicht nachvollziehen.-> #ifndef _xxx_xx
#define#endif
-> #ifdef _MSC_VER
#pragma once
#endif-> 0xFF
Würde mich freuen, wenn mir einer diese Sachen erklärt. Danke im voraus.
-
das steht da bestimmt nicht einfach so im quelltext. zeig mal die ganze zeile
-
ifndef schaut nach ob _xxx_xx noch nicht definiert ist
ifdef schaut nach, ob _MSC_VER definiert ist
0xFF heißt FF hex, also 255 dez
-
Ach so, danke, dass mit dem 0xFF habe ich nun verstanden.
Vor 0xFF gab es eine Variable.
int nZahl; nZahl = 0xFF;
Somit bekommt die Variable den Wert "255".
ABER, dass mit dem vorherigen verstehe ich noch nicht ganz. Wieso soll _xxx_xx definiert sein? Was genau bewirkt es?
Habe gesehen, dass meistens _xxx_xx eine Header-Datei ist. Wozu soll man die denn definieren? Die füge ich doch mit "#include "XXX.x" ein. ???
Würde mich auch freuen, wenn mir einer diese Stelle erklärt. Danke im voraus.
-
#ifdef _MSC_VER #pragma once #endif
Der Präprozessor guckt nach ob _MSC_VER definiert ist. Wenn ja gelangt er zu dem #pragma once. Dann merkt er sich, dass er schon einmal in dieser Datei war und braucht sie im weiteren kompiliervorgang nicht mehr zu öffnen. Kennt er #pragma once nicht dann merkt er im nächsten durchlauf dass nun _xxx_xx definiert ist und geht nicht mehr in den rest der datei. sie wird aber immer geöffnet wenn er ein #include auf diese datei findet. durch das #pragma once wird festplatte-zugriffszeit beim kompilieren gespart, aber da nicht jeder präprozessor es unterstützt sollte man es nicht ohne include-guards und nicht ohne #ifdef _MSC_VER... verwenden...
-
0xFF ist hexadezimal, also ein Zahlensystem, das nicht wie unseres auf der 10 basiert sondern auf der 16. 0xFF ist also F * 16 + F. Ein F steht für eine 15. Demnach ist 0xFF entsprechend der Dezimalzahl 255. Ein weiteres Beispiel: 0xAFCF ist A*16^3 + F*16^2 + C*16 + F also dezimal 45007...
Tabelle der Hex-Zahlen:
hex - dez 0 - 0 1 - 1 2 - 2 3 - 3 4 - 4 5 - 5 6 - 6 7 - 7 8 - 8 9 - 9 A - 10 B - 11 C - 12 D - 13 E - 14 F - 15
[ Dieser Beitrag wurde am 22.03.2003 um 09:32 Uhr von MaSTaH editiert. ]
[ Dieser Beitrag wurde am 23.03.2003 um 15:56 Uhr von MaSTaH editiert. ]
-
BTW: Das 0x wird beim umrechnen ignoriert. Es dient nur zur Kennzeichnung einer Hex-Zahl...
0x98DB entspricht 98DB
-
Danke für die Antworten.
-
0xFF ist also F * 16 + F * 16.
Nee, ISSS' klar...
-
Original erstellt von <Sgt. Nukem>:
Nee, ISSS' klar...Klugscheißer
. Habs editiert... Drunter stands ja richtig...
-
Klugscheißer
. Habs editiert... Drunter stands ja richtig...
Hehe... war ja net bös' gemeint.
Die F-14 Tomcat is' eh geiler als die F-16.
Buaaaahaaaahahaaa... wat'n Hammer-Gag!
-
*lol*
-
Sehr lustig zu Kriegszeiten, ja. :o
-
Wenn Du eine Header-Datei mit dem Namen z.B. MyHeader.h hast und sie wird in Deinem Projekt mehrfach per #include in andere Dateien eingebunden, dann kann es passieren, dass Dir der Compiler meldet, dass einige Symbole bereits definiert sind. Aus diesem Grund wird der Inhalt der Header-Datei zwischen diesen "Anweisungen" eingeschlossen, dadurch überspringt der Compiler den Inhalt, falls er den eh schon kennt:
// MyHeader.h
#ifndef __MYHEADER_H_
#define __MYHEADER_H_// ..
#endif // __MYHEADER_H_
Mit dem Klassenassistenten erstellte Dateien haben diese "Anweisungen" auch, die werden automatisch erstellt und sehen manchmal mehr als kryptisch aus.
Shaggy
-
Original erstellt von WebFritzi:
Sehr lustig zu Kriegszeiten, ja. :oSehr richtig.
Aber verrate mir doch mal eins: WANN bitteschön ist denn KEINE Kriegszeit????
Sorry, sollte ich Deine Illusionen g'rad' zerstört haben...MfG, Sarge
P.S.: Da muß ich mir jetzt auch'n anderen nick geben, wie?! Wie wär's mit "der liebe nette pazifistische Mann, der niemanden was zu Leide tun will, und glaubt, daß spätestens übermorgen die ganze Welt in Frieden lebt"?!??