 |
JLI Spieleprogrammierung
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
AFE-GmdG JLI MVP


Alter: 45 Anmeldedatum: 19.07.2002 Beiträge: 1374 Wohnort: Irgendwo im Universum... Medaillen: Keine
|
Verfasst am: 13.08.2002, 21:29 Titel: SubFix für Konstanden |
|
|
Hi, Leute:
Ich definiere Konstanten immer gerne in Hexadezimalanzeige, da man mit diesem System sehr einfach und Übersichtlich auf einzelne Bits zugreifen kann.
Z.B.:
Code: |
#define STATUS_NORMAL 0x00000001L
#define STATUS_INVERSE ~STATUS_NORMAL
|
Der Subfix L am Ende steht soweit ich weiß dafür, das die Konstanten Explizit nach unsigned long (DWORD) gewandelt werden.
Nun meine Frage: Gibt es auch solche Subfixes für unsigned short (WORD) bzw. unsigned char (BYTE) ?
AFE-GmdG _________________
CPP: | float o=0.075,h=1.5,T,r,O,l,I;int _,L=80,s=3200;main(){for(;s%L||
(h-=o,T= -2),s;4 -(r=O*O)<(l=I*I)|++ _==L&&write(1,(--s%L?_<(L)?--_
%6:6:7)+\"World! \\n\",1)&&(O=I=l=_=r=0,T+=o /2))O=I*2*O+h,I=l+T-r;} |
|
|
Nach oben |
|
 |
TheMillenium Dark JLI'ler
Anmeldedatum: 21.07.2002 Beiträge: 1427 Wohnort: World Medaillen: Keine
|
Verfasst am: 03.08.2004, 15:10 Titel: |
|
|
Normalerweise müsstest du den Datentyp auch davor schreiben können #define bla (float)3.14
Ich kenne auch keine weiteren Subfixes. Aber short und long werden eh nicht verkürz und es tritt bei denen auch kein Verlust auf. (Fehlende Stellen)
Und BYTE...wenn du char schreibst, ist es Standard C++ Konvention dass der Compiler daraus eh unsigned char macht. _________________ The source of all power is in its destiny... |
|
Nach oben |
|
 |
The Lord of Programming Living Legend

Alter: 37 Anmeldedatum: 14.03.2003 Beiträge: 3122
Medaillen: Keine
|
Verfasst am: 03.08.2004, 21:29 Titel: |
|
|
TheMillenium hat Folgendes geschrieben: | Und BYTE...wenn du char schreibst, ist es Standard C++ Konvention dass der Compiler daraus eh unsigned char macht. |
Da habe ich aber andere Erfahrungen gemacht - besonders wenn es um Dateiarbeit geht.
Ich würde empfehlen, immer wenn ihr keine Werte unter 0 braucht und den vollen Umfang einer Variablen schöpfen wollt, "unsigned" anzugeben.
Notfalls kann man sich das ja auch per #define definieren.
Code: | #define uchar unsigned char |
Wenn ich einen normalen char genommen habe, sind normalerweise auch immer nur Werte bis 127(128?) möglich gewesen. _________________ www.visualgamesentertainment.net
Current projects: RDTDC(1), JLI-Vor-Projekt, Tetris(-Tutorial), JLI-Format
(1) Realtime Developer Testing and Debugging Console
Anschlag, Anleitung zum Atombombenbau, Sprengkörper...
Hilf Schäuble! Damit er auch was findet... |
|
Nach oben |
|
 |
TheMillenium Dark JLI'ler
Anmeldedatum: 21.07.2002 Beiträge: 1427 Wohnort: World Medaillen: Keine
|
Verfasst am: 03.08.2004, 21:56 Titel: |
|
|
The Lord of Programming hat Folgendes geschrieben: |
Notfalls kann man sich das ja auch per #define definieren.
Code: | #define uchar unsigned char |
Wenn ich einen normalen char genommen habe, sind normalerweise auch immer nur Werte bis 127(128?) möglich gewesen. |
Für unsigned char kann man ja dann gleich BYTE nehmen und muss das nicht wie du gezeigt hast per #define regeln _________________ The source of all power is in its destiny... |
|
Nach oben |
|
 |
The Lord of Programming Living Legend

Alter: 37 Anmeldedatum: 14.03.2003 Beiträge: 3122
Medaillen: Keine
|
Verfasst am: 03.08.2004, 22:14 Titel: |
|
|
Ja, aber dafür braucht man den windows.h Header.
Wer den nicht einbinden will, der kann auch die define-Anweisung benutzen.
Es macht zwar keinen Unterschied, aber es ist vielleicht für manche weniger verwirrend, wenn uchar steht(dann sieht man, dass es mit char verwand ist).  _________________ www.visualgamesentertainment.net
Current projects: RDTDC(1), JLI-Vor-Projekt, Tetris(-Tutorial), JLI-Format
(1) Realtime Developer Testing and Debugging Console
Anschlag, Anleitung zum Atombombenbau, Sprengkörper...
Hilf Schäuble! Damit er auch was findet... |
|
Nach oben |
|
 |
Kampfhund Super JLI'ler
Alter: 42 Anmeldedatum: 20.07.2002 Beiträge: 408
Medaillen: Keine
|
Verfasst am: 03.08.2004, 22:26 Titel: |
|
|
Statt define würde ich typedef benutzen:
typedef unsigned char byte; _________________ Kochen ist ein NP-schweres Optimierungsproblem. |
|
Nach oben |
|
 |
C++Builder Senior JLI'ler

Anmeldedatum: 04.10.2003 Beiträge: 235
Medaillen: Keine
|
Verfasst am: 03.08.2004, 22:34 Titel: |
|
|
wo war das noch gleich...
ah da:
wenn du bei einer Ganzzahl (char,int,long) nur 4 schriebst geht der Compiler davon aus das es sich um einen Int-Wert handelt
unsigned: U oder u
long: L oder l
das kann man auch zu UL oder ul kombinieren
float: F oder f
wenn du bei float nur 0.4 schriebst geht der Compiler davon aus das es sich um einen Double-Wert handelt |
|
Nach oben |
|
 |
|
|
Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen.
|
Powered by phpBB © 2001, 2005 phpBB Group Deutsche Übersetzung von phpBB.de
|