Kann man das echt so schreiben?
-
Hi,
ich hab ne frage:
ich habe neulich im netz einen code gefunden, den ich nicht so zu 100% durchblicke:bool CKeyboard::isPressed (unsigned int key) { return ((key < 256) ? (this->m_currKey[key] == true) : false); }
ansich versteh ich den code ja, bis auf eines, wieso macht der nicht direkt this->m_currKey[key], sondern geht mit dem == operator drüber??
-
Vielleicht findet er es übersichtlicher, aber ob man es weg lässt oder nicht ist vom Verhalten her egal.
-
Weil das ne Flasche geschrieben hat:
return key<256 && m_currKey[key];
-
@Shade:
wow, das ist ja bestimmt doppel so schnell! thxkann man das hier auch noch optimieren?
bool CKeyboard::isReleased (unsigned int key) { if (key < 256) { if ((this->m_oldKey[key] == true) && (this->m_currKey[key] == false)) { return (true); } } return (false); }
-
return key<256 && m_oldKey[key] && !m_currKey[key];
-
*** schrieb:
@Shade:
wow, das ist ja bestimmt doppel so schnell! thxWenn mein Code schneller ist, als der original Code - dann solltest du deinen Compiler wechseln. Denn sowas sollte er schon optimieren können.
kann man das hier auch noch optimieren?
bool CKeyboard::isReleased (unsigned int key) { if (key >= 256) return false; return m_oldKey[key] && !m_currKey[key]; }
BTW:
die Geschwindigkeit müsste identisch sein - aber es geht hier um die Lesbarkeit. Und da ist kurzer Code meistens besser.BTW2:
Wer
if(foo==true) return true;
else return false;
schreibt, hat bool nicht verstanden.