C99 stdint.h हेडर और एमएस विज़ुअल स्टूडियो


113

अपने विस्मय के लिए मैंने अभी पता लगाया कि C99 stdint.h एमएस विज़ुअल स्टूडियो 2003 से ऊपर की ओर गायब है। मुझे यकीन है कि उनके पास अपने कारण हैं, लेकिन क्या किसी को पता है कि मैं एक कॉपी कहां डाउनलोड कर सकता हूं? इस हेडर के बिना मुझे उपयोगी प्रकारों जैसे कि uint32_t, आदि के लिए कोई परिभाषा नहीं है।


41
इस के लिए एक अद्यतन के रूप में: MSVC 2010 में अब शामिल हैstdint.h
माइकल बुर

इस ब्लॉग द्वारा जा रहे हैं: blogs.msdn.com/b/vcblog/archive/2014/11/17/… , VS 2015 पूर्वावलोकन पूरी तरह से C99 मानक लाइब्रेरी का समर्थन करता है (केवल चूक tgmath.h होने के साथ, जिसे C संकलक जादू की आवश्यकता होती है) C ++ के लिए प्रासंगिक नहीं है जिसमें ओवरलोडिंग है, और CX_LIMITED_RANGE / FP_CONTRACT जिसे कंपाइलर समर्थन की भी आवश्यकता है)।
वल्केन रैवेन

जवाबों:


82

पता चलता है कि आप इस शीर्ष लेख का एक MS संस्करण डाउनलोड कर सकते हैं:

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

एक पोर्टेबल एक यहाँ पाया जा सकता है:

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

सॉफ्टवेयर जुआ ब्लॉग के लिए धन्यवाद ।


13
एक सार्वजनिक डोमेन (MIT / BSD लाइसेंस नहीं - आपको MSVC के लिए stdint.h के आसपास कॉपीराइट अधिकार रखने की भी आवश्यकता नहीं है) (MinGW से थोड़ा संशोधित संस्करण): snipplr.com/view/18199/startth
माइकल बूर

पहला लिंक 404s
मैथ्यू मोइसन

मूल उत्तर को संशोधित करें लेकिन: github.com/mattn/gntp-send/blob/master/include/msinttypes/… svn लिंक मृत है
smaudet

46

बस उन्हें खुद को परिभाषित करें।

#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

4
क्या मुझे कुछ याद आ रहा है या उसे टाइप नहीं करना चाहिए missingint64 uint64_t अहस्ताक्षरित; ?
रोमन ए। टिचर

1
और शाब्दिक uint64_t मूल्यों का उपयोग करने के लिए यह #define U64(u) (u##ui64)विंडोज पर और #define U64(u) (u##ULL)अन्यथा उपयोगी है ।
निकलैस

45

अपडेट: विजुअल स्टूडियो 2010 और विजुअल C ++ 2010 एक्सप्रेस दोनों हैं stdint.h। इसमें पाया जा सकता हैC:\Program Files\Microsoft Visual Studio 10.0\VC\include


3
साथ ही C ++ उपयोगकर्ताओं के लिए <cstdint> जो इसे पसंद करते हैं std::
एड्रियन मैकार्थी

23

विजुअल स्टूडियो 2003 - 2008 (विजुअल C ++ 7.1 - 9) C99 के संगत होने का दावा नहीं करता है। (उनकी टिप्पणी के लिए rdentato को धन्यवाद।)


11

बूस्ट में cstdint.hpp हेडर फ़ाइल होती है, जिस प्रकार के लिए आप देख रहे हैं: http://www.boost.org/doc/libs/1_36_0/boost/cstdint.hpp


1
बूस्ट C ++ है, सवाल C99 पर है
Remo.D

4
यह स्पष्ट नहीं है - वह विज़ुअल स्टूडियो में एक C99 हेडर के बारे में पूछ रहा है, यह निर्दिष्ट किए बिना कि वह किस भाषा का उपयोग कर रहा है। किसी भी स्थिति में यह C99 नहीं हो सकता क्योंकि Microsoft इसका समर्थन नहीं करता है।
Nemanja Trifunovic

ओपी को एक कॉपी चाहिए <stdint.h>, न कि बूस्टर हैडर।
jww

5

Microsoft C99 का समर्थन नहीं करता है और उसने किसी भी योजना की घोषणा नहीं की है। मेरा मानना ​​है कि वे C ++ मानकों को ट्रैक करना चाहते हैं लेकिन C ++ के सबसेट के अलावा C को प्रभावी रूप से अप्रचलित मानते हैं।

विज़ुअल स्टूडियो 2003 में नई परियोजनाएँ और बाद में डिफ़ॉल्ट रूप से "Cile Code (/ TP)" विकल्प संकलित किया गया है, इसलिए किसी भी .c फ़ाइलों को C ++ के रूप में संकलित किया जाएगा।


4

एक और पोर्टेबल समाधान:

पॉश: पोर्टेबल ओपन सोर्स हार्नेस

"POSH एक सरल, पोर्टेबल, आसान, उपयोग में आसान, एकीकृत, लचीला, खुला स्रोत" हार्नेस "है जिसे लिखने के लिए क्रॉस-प्लेटफॉर्म पुस्तकालयों और अनुप्रयोगों को बनाने और पोर्ट बनाने के लिए काफी कम थकाऊ बनाया गया है।"

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

जैसा कि पुस्तक में वर्णित और उपयोग किया गया है: पोर्टेबल कोड लिखें: ब्रायन हुक के लिए कई प्लेटफार्मों के लिए सॉफ्टवेयर विकसित करने के लिए एक परिचय http://books.google.ca/books?id=4VOKcEAPPO0C

-जेसन


1
पोस्लिब विकिपीडिया लेख से, लिंक प्राधिकरण है: उपयोगकर्ता नाम: अतिथि, पासवर्ड: गेस्ट123
जेपीएगेट

3 कुल का भव्य
आयोजन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.