سؤال

لدهشتي اكتشفت للتو أن C99 stdint.h مفقود من MS Visual Studio 2003 وما بعده.أنا متأكد من أن لديهم أسبابهم، لكن هل يعرف أحد أين يمكنني تنزيل نسخة؟بدون هذا الرأس ليس لدي تعريفات للأنواع المفيدة مثل uint32_t، وما إلى ذلك.

هل كانت مفيدة؟

المحلول

اتضح أنه يمكنك تنزيل إصدار MS من هذا الرأس من:

https://github.com/mattn/gntp-send/blob/master/include/msinttypes/stdint.h

يمكن العثور على واحد محمول هنا:

http://www.azillionmonkeys.com/qed/pstdint.h

شكرا ل تجول البرمجياتمدونة.

نصائح أخرى

فقط قم بتعريفها بنفسك.

#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

تحديث: فيجوال ستوديو 2010 و فيجوال سي++ 2010 اكسبريس كلاهما يملكان stdint.h.يمكن العثور عليها في C:\Program Files\Microsoft Visual Studio 10.0\VC\include

لا يدعي Visual Studio 2003 - 2008 (Visual C++ 7.1 - 9) أنه متوافق مع C99.(شكرًا لـ rdentato على تعليقه.)

يحتوي Boost على ملف رأس cstdint.hpp بالأنواع التي تبحث عنها: http://www.boost.org/doc/libs/1_36_0/boost/cstdint.hpp

لا تدعم Microsoft C99 ولم تعلن عن أي خطط لذلك.أعتقد أنهم يعتزمون تتبع معايير C++ ولكنهم يعتبرون C قديمة بشكل فعال باستثناء مجموعة فرعية من C++.

تحتوي المشاريع الجديدة في Visual Studio 2003 والإصدارات الأحدث على خيار "Compile as C++ Code (/TP)" الذي تم تعيينه افتراضيًا، لذلك سيتم تجميع أي ملفات .c كـ C++.

حل محمول آخر:

فاخر:الحزام المحمول مفتوح المصدر

"POSH عبارة عن "أداة مساعدة" بسيطة ومحمولة وسهلة الاستخدام وسهلة التكامل ومرنة ومفتوحة المصدر، مصممة لجعل كتابة المكتبات والتطبيقات عبر الأنظمة الأساسية أقل إرهاقًا بشكل كبير في الإنشاء والنقل."

http://poshlib.hookatooka.com/poshlib/trac.cgi

كما هو موصوف ومستخدم في الكتاب:اكتب الكود المحمول:مقدمة لتطوير البرامج للمنصات المتعددة من براين هوكhttp://books.google.ca/books?id=4VOKcEAPPO0C

-جيسون

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top