Mir unverständliche Warnung



  • Warning 8 warning C4267: '=' : conversion from 'size_t' to 'unsigned int', possible loss of data c:\xxxxxlib.c 133

    Weil bei mir 'size_t' ja ein 'unsigned int' ist! Was soll den dass zum Henker nochmal... wäre net wenn mir jemand auf die Sprünge helfen würde.



  • Soweit ich weiss wird vom Standard nicht garantiert, dass eine size_t Variable in eine unsigned int Variable passt. Das kommt auf die Implementierung draufan. Deswegen spuckt der eine Warnung aus.



  • Hast du (den als deprecated eingestuften) Schalter /Wp64 gesetzt?
    Wenn du x64-Code erzeugst, ist nämlich ein unsigned int nicht mehr so breit wie ein size_t.
    Und vom Standard sind sowieso jeweils nur Mindestgrößen vorgegeben.



  • Der ANSI Standard verwendet aus gutem Grund an diversen Stellen
    (malloc, fseek, fread u.s.w.) immer size_t. Spricht was dagegen
    das als Typ zu verwenden ?

    Ansonsten wäre unsigned long notfalls eine Alternative.


Anmelden zum Antworten