Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Ich habe hier mehrere Abfragen mit if then else. Die Hex-Zahl dahinter wird sich immer wieder ändern, kann also auch 0x0010 sein. Nun ist für mich die Frage, ob man das nicht kürzen kann? Einfach mit eine Art Berechnung?
@Jankie: die mach_was-Funktion würde man wohl bits_set nennen und entspricht so ziemlich dem &-Operator, so dass eine eigene Funktion hast übertrieben ist. Wenn VRESULT konstant wäre, dann wäre CRESULT auch konstant.
Sirius3 hat geschrieben: Freitag 8. Mai 2020, 11:38
Die Namen sind schlecht, da c und v keine Aussagekraft haben.
Wenn man cresult nur in einem boolschen Kontext verwendet reicht auch
@Jankie: die mach_was-Funktion würde man wohl bits_set nennen und entspricht so ziemlich dem &-Operator, so dass eine eigene Funktion hast übertrieben ist. Wenn VRESULT konstant wäre, dann wäre CRESULT auch konstant.
Das ganze ist nur beispielhaft. Deshalb auch irgendwelche Variablen. cresult ist dynamisch, deshalb ist nichts konstant.
cresult = vresult & 0x0200 ergibt doch aber nicht True oder False, sondern entweder 0 oder eben 0x0200 ?
Sirius3 hat geschrieben: Freitag 8. Mai 2020, 14:02
@Cannon: deshalb auch die Frage, wo Du cresult benutzt. Wenn das nur in einem if passiert, ist das egal.
Nein, ich nutze das, um das eine Variable zuzuweisen. Der Ziel-Typ muss deshalb bool sein.
Ich weiss es sind alles nur Beispiele, aber wenn die literalen Hex-Zahlen jeweils für einzelne Bits oder Masken mit einer Bedeutung stehen, würde man die der besseren Lesbar- und Verständlichkeit als Konstanten mit sprechenden Namen definieren. Eventuell wäre auch `enum.IntFlag` an der Stelle interessant.
“Vir, intelligence has nothing to do with politics!” — Londo Mollari