繁体   English   中英

C99 stdint.h头文件和MS Visual Studio

[英]C99 stdint.h header and MS Visual Studio

令我惊讶的是,我刚刚发现MS Visual Studio 2003向上缺少C99 stdint.h。 我确定他们有他们的理由,但有谁知道我可以在哪里下载副本? 如果没有这个头文件,我就没有uint32_t等有用类型的定义。

事实证明,您可以从以下位置下载此标头的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

更新: Visual Studio 2010Visual C ++ 2010 Express都有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

微软不支持C99,也没有宣布任何计划。 我相信他们打算跟踪C ++标准,但认为C有效地过时,除非作为C ++的一个子集。

Visual Studio 2003及更高版本中的新项目默认设置了“编译为C ++代码(/ TP)”选项,因此任何.c文件都将编译为C ++。

另一种便携式解决

POSH:便携式开源线束

“POSH是一种简单,易用,易于使用,易于集成,灵活,开源的”线束“,旨在使编写跨平台库和应用程序的创建和移植变得更加繁琐。”

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

正如书中所描述和使用的那样:编写可移植代码:为多个平台开发软件的介绍作者:Brian Hook http://books.google.ca/books?id=4VOKcEAPPO0C

-Jason

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM