2012-07-16 117 views
1

标题stdint.h如何在每台机器上将u32定义为32位?有人可以详细说明stdint.h做到这一点的过程吗?我在哪里可以找到我的机器(Windows 7)stdint.h文件?C类型声明intN_t

回答

2

stdint.h在C99中(2008版以下的VC++仅实现C89),因此要在Win7机器上安装此文件,需要安装VisualStudio 2010(或更高版本)。然后,此文件位于MSVS安装的“VC \ include \ stdint.h”文件夹中。

MinGW(用于Win32的gcc工具链)和Cygwin(用于Windows机器的POSIX层)也在其“include”目录中包含stdint.h文件。

对于你的问题:uintN_t类型背后的“魔术”通常使用条件编译来实现。可能会有一些预定义符号(由编译器),如Windows上的_WIN32和x64目标上的_WIN64。

对于2008年之前的版本的VisualStudio中有一个单独的stdint.h实现:http://msinttypes.googlecode.com/svn/trunk/stdint.h

+0

'stdint.h'在进入POSIX之前来自C99。 – ouah 2012-07-16 17:00:18

+0

好点,我会解决的:) – 2012-07-16 17:00:58

3

编译器工具链的C标准库的提供者将确保该特定部署的正确性。据推测,他们被允许使用任何必要的手段来确保情况确实如此。它可以像知道是否将其定义为int或long一样简单。

+0

'intN_t'总是'typedef'存在时(这些类型是可选的)。 – ouah 2012-07-16 17:02:31