令我惊讶的是,我刚刚发现MS Visual Studio 2003向上版本中缺少C99 stdint.h。我确定它们是有原因的,但是有人知道我可以在哪里下载副本吗?没有此标头,我将无法定义有用的类型,例如uint32_t等。
令我惊讶的是,我刚刚发现MS Visual Studio 2003向上版本中缺少C99 stdint.h。我确定它们是有原因的,但是有人知道我可以在哪里下载副本吗?没有此标头,我将无法定义有用的类型,例如uint32_t等。
Answers:
原来您可以从以下位置下载此标头的MS版本:
https://github.com/mattn/gntp-send/blob/master/include/msinttypes/stdint.h
可以在这里找到便携式的:
http://www.azillionmonkeys.com/qed/pstdint.h
感谢Software Rambling的博客。
只需自己定义即可。
#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
#define U64(u) (u##ui64)
对Windows或#define U64(u) (u##ULL)
其他情况很有用。
更新:Visual Studio 2010和Visual C ++ 2010 Express都有stdint.h
。可以在C:\Program Files\Microsoft Visual Studio 10.0\VC\include
std::
。
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
<stdint.h>
,而不是Boost标头。
另一个便携式解决方案:
POSH:便携式开源工具
“ POSH是一种简单,可移植,易于使用,易于集成,灵活,开放源代码的“工具”,旨在使编写跨平台的库和应用程序的创建和移植工作大大减少。”
http://poshlib.hookatooka.com/poshlib/trac.cgi
如本书中所描述和使用的:写可移植的代码:针对多种平台的软件开发简介Brian Hook http://books.google.ca/books?id=4VOKcEAPPO0C
-杰森
stdint.h