'unsigned int' bei Visual C++

Hallo,

ich programmiere derzeit in C und benutze Visual Studio 2005 (Visual C++). Dabei habe ich gemerkt, dass der Compiler irgenwie den unsigned int-Typ nicht erkennt, sondern immer normale (pos. und neg.) int erstellt. Kann mir vielleicht jemand sagen woran dass liegt bzw. wie ich den Compiler von Visual C++ dazu bekomme das er das Schluesslwort „unsigned“ nicht einfach ignoriert.

THX,
keV

Hallo zurück,

das kommt drauf an, gib mal etwas Code an, bei dem der Compiler rumzickt. So ganz pauschal lässt sich das einfach nicht sagen.

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo keV,

Versuche doch den Datentyp „WORD“, da sollte es klappen. Braucht auch wirklich nur 2 Bytes im Speicher, gegenüber den 4 von int.

lg
Martin B

ja, also ich programmiere in OpenGL und benutze den Datentyp GLuint welcher folgendermassen definiert ist: „typedef unsigned int GLuint“. Ich definiere mit diesem typ ein Array, in welchem dann die Abstaende zu verschiedenen 3D-Objekten gespeichert werden, wobei dort Zahlen von 0…2^32-1 stehen sollten. Bei mir stehen aber auch negative Zahlen…

Egal, das Problem liegt auf jeden Fall nicht beim Code oder an den Bibliotheken, wie folgender einfacher Code schon zeigt:

unsigned int a = 0;
a–;
printf(„a = %d“,a);

Die Ausgabe ist dann: a = -1

Das Problem liegt irgendwie daran dass der Compiler den unsigned typ nicht annimmt. Ich habe keine Ahnung woran das liegt.

hallo,

das Problem ist das printf. Du sagst ihm ja, das er das als signed int interpretieren soll. Printf kümmert sich herzlich wenig um den tatsächlichen Datentyp, sondern macht nur das, was Du ihm sagst.
Probier das mal anders, typensicher:

#include 

int main()
{
 unsigned int x = -1;
 std::cout 
Dann kommt auch das erwartete raus.

grüße


> <small>[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]</small>