En-tête C99 stdint.h et MS Visual Studio
-
02-07-2019 - |
Question
À mon grand étonnement, je viens de découvrir que le fichier stdint.h C99 est absent de MS Visual Studio 2003 et plus. Je suis sûr qu'ils ont leurs raisons, mais est-ce que quelqu'un sait où je peux télécharger une copie? Sans cet en-tête, je n'ai pas de définition pour les types utiles tels que uint32_t, etc.
La solution
Il s'avère que vous pouvez télécharger une version MS de cet en-tête à partir de:
https://github.com/mattn/ gntp-send / blob / master / include / msinttypes / stdint.h
Un portable peut être trouvé ici:
http://www.azillionmonkeys.com/qed/pstdint.h
Merci au Randonnée logicielle s blog.
Autres conseils
Définissez-les vous-même.
#ifdef _MSC_VER
typedef __int32 int32_t;
typedef unsigned __int32 uint32_t;
typedef __int64 int64_t;
typedef unsigned __int64 uint64_t;
#else
#include <stdint.h>
#endif
Mise à jour: Visual Studio 2010 et Visual C ++ 2010 Express possèdent tous deux stdint.h
. Vous pouvez le trouver dans C: \ Programmes \ Microsoft Visual Studio 10.0 \ VC \ include
Visual Studio 2003 - 2008 (Visual C ++ 7.1 - 9) ne prétend pas être compatible C99. (Merci à rdentato pour son commentaire.)
Boost contient le fichier d'en-tête cstdint.hpp avec les types que vous recherchez: http://www.boost.org/doc/libs/1_36_0/boost/cstdint.hpp
Microsoft ne prend pas en charge C99 et n’a annoncé aucun projet. Je crois qu’ils ont l’intention de suivre les normes C ++, mais le considèrent comme étant effectivement obsolète, sauf comme un sous-ensemble de C ++.
Les nouveaux projets dans Visual Studio 2003 et versions ultérieures ont le code "Compiler en code C ++ (/ TP)". option définie par défaut, donc tous les fichiers .c seront compilés en C ++.
Une autre solution portable:
POSH: le harnais portable Open Source
"POSH est un" harnais "simple, portable, facile à utiliser, facile à intégrer, flexible et open source. conçu pour rendre l’écriture de bibliothèques et d’applications multiplates-formes beaucoup moins fastidieuse à créer et à porter. "
http://poshlib.hookatooka.com/poshlib/trac.cgi
tel que décrit et utilisé dans le livre: Écrire un code portable: introduction au développement de logiciels pour plusieurs plates-formes Par Brian Hook http://books.google.ca/books?id=4VOKcEAPPO0C
-Jason