Always true due ??



  • warning: comparison is always true due to limited range of data type... kommt wenn ich:

    state[X][Y] ^= sbox_1[FILL_INDEX * 16 + add_key(X, Y)];
    		if(state[X][Y] < 113 && state[X][Y] >= 0)
    			state[X][Y] += 1;
    		else if(state[X][Y] > 195)
    			state[X][Y] -= 1;
    

    generiere...

    aber wieso?? ich sage doch nur... wenn der wert des states zwischen 0 und 112 liegt... addiere den wert 1...

    weiß jmd warum der compiler das meldet??
    der state ist: unsigned char...
    hab mal ohne unsigned probiert... geht auch nich...
    thx...



  • state[X][Y] ist immer >= 0, da du einen unsigned char benutzt, der eben immer >= 0 ist.



  • ja.. aber es müssen doch beide vorraussetzungen erfüllt werden... also auch das es kleiner als 113 sein muss... und das kann nicht immer true sein...


  • Mod

    state12311515 schrieb:

    ja.. aber es müssen doch beide vorraussetzungen erfüllt werden... also auch das es kleiner als 113 sein muss... und das kann nicht immer true sein...

    In der Warnung steht auch nur, dass der eine Vergleich immer true ist. Nicht, dass die Bedingung immer true ist.


Anmelden zum Antworten