JLI Spieleprogrammierung Foren-Übersicht JLI Spieleprogrammierung

 
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen 
 medals.phpMedaillen   RegistrierenRegistrieren   ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

SubFix für Konstanden

 
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Entwicklung
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
AFE-GmdG
JLI MVP
JLI MVP


Alter: 45
Anmeldedatum: 19.07.2002
Beiträge: 1374
Wohnort: Irgendwo im Universum...
Medaillen: Keine

BeitragVerfasst am: 13.08.2002, 21:29    Titel: SubFix für Konstanden Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
TheMillenium
Dark JLI'ler



Anmeldedatum: 21.07.2002
Beiträge: 1427
Wohnort: World
Medaillen: Keine

BeitragVerfasst am: 03.08.2004, 15:10    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
The Lord of Programming
Living Legend


Alter: 37
Anmeldedatum: 14.03.2003
Beiträge: 3122

Medaillen: Keine

BeitragVerfasst am: 03.08.2004, 21:29    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
TheMillenium
Dark JLI'ler



Anmeldedatum: 21.07.2002
Beiträge: 1427
Wohnort: World
Medaillen: Keine

BeitragVerfasst am: 03.08.2004, 21:56    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
The Lord of Programming
Living Legend


Alter: 37
Anmeldedatum: 14.03.2003
Beiträge: 3122

Medaillen: Keine

BeitragVerfasst am: 03.08.2004, 22:14    Titel: Antworten mit Zitat

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). Wink
_________________
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
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Kampfhund
Super JLI'ler


Alter: 42
Anmeldedatum: 20.07.2002
Beiträge: 408

Medaillen: Keine

BeitragVerfasst am: 03.08.2004, 22:26    Titel: Antworten mit Zitat

Statt define würde ich typedef benutzen:

typedef unsigned char byte;
_________________
Kochen ist ein NP-schweres Optimierungsproblem.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
C++Builder
Senior JLI'ler



Anmeldedatum: 04.10.2003
Beiträge: 235

Medaillen: Keine

BeitragVerfasst am: 03.08.2004, 22:34    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Entwicklung Alle Zeiten sind GMT
Seite 1 von 1

 
Gehe zu:  
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

Impressum