Grenzbereich von short int



  • hallo habe eine frage.

    der Grenzbereich von short int ist -32768 bis 32767. Folgendes passiert nun: wenn ich der short int Variablen den Wert
    -32769 oder 32768 zuweise (wollte ich mal zu Testzwecken machen)bekomme ich die Warnung warning C4305: '=' : Verkuerzung von 'const int ' in 'short ', wenn ich dann in den Debugger gehen und dann mit „Aufruf als ein Schritt“ den Code durchgehe sieht man unten das der Variablen im Fall i_x = 32768; der Wert
    -32768 zugewiesen wurde und bei i_x = -32769; der Wert 32767.
    Das geht dann so weiter :
    i_x = 32769 (im Programm) -32767 (im Debugger)
    i_x = 32770 (im Programm) -32766 (im Debugger)
    Kann mir jemand bitte erklären warum das so ist?
    Kann mir auch jemand sagen ob ich in der MSDN nachschauene kann was eine Fehlernummer oder eine Warnnummer genau bedeuten?
    Vielen Dank.

    hier mein Quellcode:

    #include <stdio.h>
    
    void main()
    
    {
    
    short int i_x;
    
    i_x = 32770; //warning C4305: '=' : Verkuerzung von 'const int ' in 'short '
    
    printf("%i\n\n", i_x);
    
    }
    


  • sobald du den grenzwert überschreitest beginnt es bei der kleinsten zahl weiterzuzählen

    daher -32768 ist unterster wert wenn du nun 32768 einer variable zuweisst kommt die gekannte, wenn du 32769 machst bekommst du -32767 raus,

    du kannst es dir wie einen ring vorstellen, die kleinste und die größte liegen nebeneinander, sobald du über die größte hinausgehst kommst du bei den kleinen raus



  • achso, danke!!


Log in to reply