Hallo Matrix,
da führen sicherlich viele Wege nach Rom. Wenn es schnell gehen soll und
Speicher keine große Rolle spielt, kannst Du ein Feld von 256
Funktionszeigern anlegen und den Wert als Index nehmen. Hmmm, bin gar
nicht sicher, dass es deutlich mehr Speicher braucht als 25
Fenstervergleiche.
In nehme mal an, die Fenster sind nicht gleichverteilt über die 256
Werte, oder? Es wird natürlich einfacher, wenn es irgendwelche Wege zur
Vereinfachung gibt (z.B. Wegschneiden des letzten Bits). Aber das wissen
wir ja nicht...
Und wie genau es sein muss, wissen wir auch nicht. Wenn Du z.B. auf
Basis einer Potistellung, die per AD-Wandler eingelesen wird,
unterschiedliche Dinge tun willst, kannst Du sicherlich einfach den Wert
0..255 durch 10 teilen und bei 24 kappen. Dann wird das Funktions-Array
klasse klein. Handlicher ist dann aber vielleicht eine switch-Struktur,
da kann man doch etwas besser drin schaffen.
1 | switch (wert/10){
|
2 | case 0: tue, was bei 0..9 zu tun ist
|
3 | break;
|
4 | case 1: tue, was bei 10..19 zu tun ist
|
5 | break;
|
6 | ...
|
7 | case 23: tue, was bei 230..239 zu tun ist
|
8 | break;
|
9 | default: tue, was bei 240..255 zu tun ist
|
10 | }
|
Gruß
Jens