رأس C99 stdint.h وMS Visual Studio
-
02-07-2019 - |
سؤال
لدهشتي اكتشفت للتو أن 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
-جيسون