002
21.08.2006, 08:41 Uhr
ao
(Operator)
|
Zitat von Lensflare: |
wieso benutzt man also bool, wenn man stattdesen genauso gut auch char benutzen könnte?
|
Weil durch sog. "problemangepasste Datentypen" der Sourcecode besser verständlich und damit fehlersicherer wird.
Zitat: |
macht der compiler vielleicht irgendwelche optimierungen und packt mehrere bools in eine speicherzelle?
|
Nein. Das würde zwar Speicherplatz sparen, aber dafür Rechenzeit vergeuden, weil der Speicher nur byte-adressierbar ist. D.h. zum Schreiben einer 1 an irgendeine Bitstelle muss das ganze Byte in ein Register geholt, dort die 1 an der richtigen Stelle einmaskiert und das veränderte Byte zurückgeschrieben werden. Speicherplatz ist billig, es gibt keinen Grund, sich irgendwelche Zwänge aufzuerlegen, um ein paar Bytes einzusparen.
Auf Mikrocontroller-Plattformen sieht die Sache ganz anders aus, die haben oft nur ein paar kB oder ein paar hundert Bytes RAM, und da muss man schon knausern. Dafür gibts dann aber oft einen bit-adressierbaren Speicherbereich, d.h. man kann Variablen definieren und benutzen, die tatsächlich nur ein Bit Speicher belegen.
ao |