Gast
#39487
Moin Leute, ich habe mal wieder ein Problem: Bei meinen gelegentlichen Kontrollen der LST-Files habe ich festgestellt, daß der Compiler grundsätzlich alle Variablen auf 16-Bit-Breite erweitert. Ich schreibe z.B. eine Funktion, in die ein unsigned char übergeben wird und vergleiche dann in der Funktion den Parameter mit einer Konstanten (die auch <=255 ist). Dann erzeugt der Compiler schon vor dem Aufruf der Sub-Funktion einen 16-Bit-Wert für den Parameter. Mit diesem führt er dann den Call aus und vergleicht dann mit der Konstanten, die er wieder auf 16Bit erweitert. Das kostet doch unendlich Speicher und Rechenzeit. Kann man das abschalten? Besonders kompliziert wird das beim Indizieren eines Arrays. Der erweitert den Index auf 16Bit und muß dann die anschließende Multiplikation (mit der Variablenbreite) und die Addition des Offsets mit einem riesen Aufwand durchführen. Help, Markus