2012-07-16 118 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