Qu’est-ce que u_int32_t?

Dupliquer possible:
Types de données utilisés en C

Bonjour, je fais du portage de Linux vers Visual C ++. Et j’ai trouvé pas mal d’erreurs. Qu’est-ce que u_int32_t? Je ne le trouve pas dans Visual C ++? Est-ce seulement disponible sous Linux? Quel type dois-je utiliser dans Visual C ++? Merci d’avance !!!

Kevin

L’en-tête C99 stdint.h définit des types qui ne dépendent pas de l’architecture ou du compilateur. La signification de unsigned int peut différer (par exemple, 16 bits de large sur un système 16 bits), mais les types de stdint.h ont une taille spécifique.

Soit le trait de soulignement supplémentaire est entré accidentellement, soit quelqu’un le recopie pour une bibliothèque ou autre. Si tel est le cas, incluez votre propre en-tête, incluez stdint.h dans cet en-tête et assurez-vous de typedef uint32_t u_int32_t après l’inclusion.

Ces noms pas tout à fait standard semblent avoir été introduits par BSD: http://lists.freedesktop.org/archives/release-wranglers/2004-August/000923.html

Je ne suis pas tout à fait sûr du type exact, mais d’après le nom, cela ressemble à un entier non signé de 32 bits . Le type correspondant dans Visual C ++ serait unsigned int .

Il y a d’autres alias pour cela, mais ce nom suffirait.

Il s’agit d’un type de données int signature non signée est garantie à 32 bits. Pour l’utiliser, vous devez inclure le fichier stdint.h .

Je ne suis pas sûr que cela soit disponible directement dans la dernière version de VC ++. La page wikipedia contient des liens vers diverses implémentations fonctionnant avec les compilateurs Microsoft (par exemple, msinttypes ).

Si vous êtes certain que le type d’ unsigned int par défaut sera toujours de 32 bits, vous pourrez peut-être simplement substituer à celui-ci. Mais l’utilisation d’un type de données explicite sur 32 bits est préférable.

Pas sûr de u_int32_t , mais uint32_t est un type standard conforme à la version 1999 du standard C , provenant de .

Visual C ++ a choisi de ne pas adopter C99 et n’est donc pas pris en charge là-bas. Si vous incluez vous pouvez simplement utiliser DWORD , qui aura la même taille et sera également non signé.