C99 stdint.h başlığı ve MS Visual Studio


113

Şaşırtıcı bir şekilde, C99 stdint.h dosyasının MS Visual Studio 2003'ten itibaren eksik olduğunu keşfettim. Eminim sebepleri vardır, ancak bir kopyasını nereden indirebileceğimi bilen var mı? Bu başlık olmadan uint32_t, vb. Gibi yararlı türler için tanımım yok.


41
Bunun bir güncellemesi olarak: MSVC 2010 artık şunları içeriyorstdint.h
Michael Burr

Bu bloga giderken: blogs.msdn.com/b/vcblog/archive/2014/11/17/… , VS 2015 Preview C99 Standart Kitaplığını tam olarak destekler (tek eksiklik tgmath.h, C derleyici sihri ve aşırı yükleme olan C ++ ve ayrıca derleyici desteği gerektiren CX_LIMITED_RANGE / FP_CONTRACT ile ilgili değildir).
vulcan raven

Yanıtlar:


82

Bu başlığın MS sürümünü şuradan indirebileceğiniz ortaya çıktı:

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

Taşınabilir bir tane burada bulunabilir:

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

Software Rambling in blogu için teşekkürler .


13
MSVC için ( MinGW'den
Michael Burr

İlk bağlantı
404'ler

Orijinal yanıtı değiştirdi ancak: github.com/mattn/gntp-send/blob/master/include/msinttypes/… svn bağlantısı öldü
smaudet

46

Onları kendiniz tanımlayın.

#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
Eksik bir şey mi var yoksa işaretsiz __int64 uint64_t; ?
Roman A. Taycher

1
Ve değişmez uint64_t değerlerini kullanmak #define U64(u) (u##ui64), Windows'ta ve #define U64(u) (u##ULL)aksi halde yararlıdır .
Niklas

45

Güncelleme: Visual Studio 2010 ve Visual C ++ 2010 Express'in her ikisi de stdint.h. BulunabilirC:\Program Files\Microsoft Visual Studio 10.0\VC\include


3
Bunun yanı sıra, içinde onu seven C ++ kullanıcıları için <cstdint> std::.
Adrian McCarthy

23

Visual Studio 2003 - 2008 (Visual C ++ 7.1 - 9) C99 uyumlu olduğunu iddia etmez. (Yorum için rdentato'ya teşekkürler.)



5

Microsoft, C99'u desteklemiyor ve herhangi bir planını açıklamadı. C ++ standartlarını izlemeyi amaçladıklarına inanıyorum, ancak C'yi C ++ 'ın bir alt kümesi dışında etkin bir şekilde modası geçmiş olarak görüyorlar.

Visual Studio 2003 ve sonraki sürümlerindeki yeni projeler, varsayılan olarak "Compile as C ++ Code (/ TP)" seçeneğine sahiptir, bu nedenle tüm .c dosyaları C ++ olarak derlenecektir.


4

Başka bir taşınabilir çözüm:

POSH: Taşınabilir Açık Kaynak Demeti

"POSH, platformlar arası kitaplıkların ve uygulamaların oluşturulmasını ve taşınmasını önemli ölçüde daha az sıkıcı hale getirmek için tasarlanmış basit, taşınabilir, kullanımı kolay, entegre etmesi kolay, esnek, açık kaynaklı bir" koşum "."

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

kitapta açıklandığı ve kullanıldığı gibi: Taşınabilir kod yazın: birden çok platform için yazılım geliştirmeye giriş Yazan Brian Hook http://books.google.ca/books?id=4VOKcEAPPO0C

Jason


1
Poshlib Wikipedia makalesinden, bağlantı yetkilendirmesi şu şekildedir: kullanıcı adı: misafir, şifre: misafir123
JPaget

Genel toplam 3 kaydetme, sonuncusu Eylül 2006 tarihli
AntoineL
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.