Variable wird auf booleschen Wert ('True' oder 'False') gesetzt ...
-
Wie oft fragst du denn bei einer 1MB-Datei ab, ob sie zum lesen oder schreiben geöffnet ist?
Bei jedem Lese und Schreibzugriff und wenn jetzt die Pixel einzeln ausgelesen werden ... ok, selten dämlich, aber idiotensicher.
Warum machst du es überhaupt mit einer Bitmaske? Nimm doch 4 bool variablen
Weil es noch mehr und später stell ich von den Hexwerten noch auf Bits um und dann kann ich in 4 Byte 32 Statuszustände speichern, sonst bräuchte ich 32 bools = 32 Byte.
ChrisM
-
Original erstellt von ChrisM:
[quote]Wie oft fragst du denn bei einer 1MB-Datei ab, ob sie zum lesen oder schreiben geöffnet ist?**
Bei jedem Lese und Schreibzugriff und wenn jetzt die Pixel einzeln ausgelesen werden ... ok, selten dämlich, aber idiotensicher.
**[/QUOTE]Bist du ein Idiot oder schreiben Idioten an dem Programm mit? Wieso muß es dann idiotensicher sein?
-
Original erstellt von ChrisM:
Bei jedem Lese und Schreibzugriffwarum?
-
Na, damit niemand versucht, auf einen Stream, die nur lesen darf, irgendwas zu schreiben.
Und wenn ich bools verwende und die fülle und abfrage kann ich ja gleich die Flags weglassen.ChrisM
-
dann mach die überprüfung nur in der debug version oder so
-
Die Frage ist eher, warum du eine Texture pixelweise einliest. Es reicht doch, wenn du einmal überprüfst, ob der Stream im richtigen Zustand ist, und dann gleich einen Megabyte-Block auf einmal einliest.
-
So mach ich es ja auch, die Frage ist nur, ob der Benutzer (also der, der die Lib verwendet) das auch so macht.
ChrisM
-
Die benutzt eh niemand. :p
-
ChrisM
-
Wo genau ist jetzt deine Verbesserung?
Uups, ich Idiot. Ich hab verpennt, dass SF_BINARY schon boolean ist. Da hab ich wohl zu schnell geschossen... Es lag halt auf der Hand, dass expr ? true : false == expr & 1.
-
Original erstellt von UncleSniper:
Ich hab verpennt, dass SF_BINARY schon boolean ist.Isses aber gar nicht.
Es lag halt auf der Hand, dass expr ? true : false == expr & 1.
Das ist falsch.
2 ? true : false == true
2 & 1 == 0
-
Hmm Problem ist immer noch da?
-
Also ich würds so machen: Warnung ignorieren.
Warnungen deaktivieren bin ich nicht so der Fan von, kann ja mal sein dass sie an einer Stelle nochmal kommen, wo sie berechtigt sind.
-
@Lars:
hmmm...und dann hast du bei einem großen Projekt auf einmal einige hundert Warnungen und mußt erst mal rausfinden, welche nun zu ignorieren sind und welche nicht?!? Dann doch lieber eine "saubere" Lösung...
-
warnung ignorieren ist _sehr_ schlimm!
lieber die warnung lokal ausschalten.
aber unter uns gesagt: die lösung wurde schon genannt
-
Ich weiß, hab ich auch schon auf Seite 1 unten gesagt:
OK, ich verwende die Lösung von Dimah.
Das ist die != 0-Lösung und die geht hervorragend.
ChrisM
[ Dieser Beitrag wurde am 26.04.2003 um 00:31 Uhr von ChrisM editiert. ]
-
@ChrisM:
mein beitrag war an Lars gerichtet
-
Achso, sorry
ChrisM
-
Original erstellt von <volkart>:
ich bin doch nicht der volkart mit D :o :pAber ne gute Kopie. Ich hätte auch !! vorgeschlagen.
Kein Gegengrund: Performance kostet es nicht, denn die Funktion soll ja bool zurückgeben, also ist sicher ein cast nach bool da.
und
bool(x)
oder
x?true:false
oder
x!=0
oder
!!x
machen alle nur den cast nach bool. also aus 0 wird false und aus allem anderen wird true. klar kostet das was. aber unvermeidlich beim cast nach bool. damit bool schnell vergleichbar ist, soll jedes true das gleiche bitmuster haben, und diese kosten zahlt man bei der entscheidung, daß die funktion nen bool zurückliefern soll, statt eines int, den man als bool benutzt.Dicker Grund:
!! ist als idiom leicht merkbar und sozusagen der msvc-mach-zu-bool-operator. ein nachgestelltes ?true:false wirkt dagegen eher affig.[ Dieser Beitrag wurde am 26.04.2003 um 00:52 Uhr von volkard editiert. ]
-
Original erstellt von Bashar:**Isses aber gar nicht.
**Ach, nicht? Na dann hast du recht und mein Ansatz war Schwachsinn.
**Das ist falsch.
2 ? true : false == true
2 & 1 == 0**Ich gehe davon aus, dass expr boolean ist.