标头stdint.h如何在每台机器上将u32定义为32位?有人可以详细说明stdint.h为实现这一目标所做的过程吗?我在哪里可以找到我的机器(Windows 7)stdint.h文件?
答案 0 :(得分:3)
编译器工具链的C标准库的提供程序将确保它对于该特定部署是正确的。据推测,他们可以使用任何必要的手段来确保这种情况。它可以像知道是否将其定义为int或long一样简单。
答案 1 :(得分: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