1

ヘッダーstdint.hは、すべてのマシンでu32を32ビットとしてどのように定義しますか?誰かがこれを実現するためにstdint.hが行うプロセスについて詳しく説明できますか?自分のマシン(Windows 7)のstdint.hファイルはどこにありますか?

4

2 に答える 2

3

コンパイラツールチェーンのC標準ライブラリのプロバイダーは、その特定の展開に対して正しいことを確認します。おそらく、彼らはこれが事実であることを保証するために必要なあらゆる手段を使用することを許可されています。それは、intまたはlongのどちらにtypedefするかを知るのと同じくらい簡単かもしれません。

于 2012-07-16T16:54:20.307 に答える
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など、(コンパイラによって)事前定義されたシンボルがいくつかある場合があります。

VisualStudioの2008より前のバージョンには、別のstdint.h実装があります:http://msinttypes.googlecode.com/svn/trunk/stdint.h

于 2012-07-16T16:57:55.407 に答える