116

驚いたことに、MS VisualStudio2003以降にC99stdint.hがないことに気づきました。彼らには理由があると思いますが、どこでコピーをダウンロードできるか誰か知っていますか?このヘッダーがないと、uint32_tなどの便利なタイプの定義がありません。

4

7 に答える 7

84

このヘッダーのMSバージョンは次の場所からダウンロードできます。

https://github.com/mattn/gntp-send/blob/master/include/msinttypes/stdint.h

ポータブルなものはここにあります:

http://www.azillionmonkeys.com/qed/pstdint.h

SoftwareRamblingのブログに感謝します。

注意:Michael Burrがコメントで言及しているパブリックドメインバージョンのヘッダーは、アーカイブされたコピーとしてここにあります。更新されたバージョンは、libusb_aahのAndroidソースツリーにあります。

于 2008-09-24T09:54:09.377 に答える
49

自分で定義してください。

#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
于 2008-09-24T13:37:10.213 に答える
47

更新: Visual Studio 2010Visual C++ 2010 Expressの両方にstdint.h. それはで見つけることができますC:\Program Files\Microsoft Visual Studio 10.0\VC\include

于 2010-04-13T08:26:21.023 に答える
25

Visual Studio 2003-2008(Visual C ++ 7.1-9)は、C99互換であるとは主張していません。(彼のコメントをくれたrdentatoに感謝します。)

于 2008-09-24T11:53:21.417 に答える
11

Boost には、探しているタイプの cstdint.hpp ヘッダー ファイルが含まれています: http://www.boost.org/doc/libs/1_36_0/boost/cstdint.hpp

于 2008-09-24T13:56:48.343 に答える
6

Microsoft は C99 をサポートしておらず、その計画も発表していません。彼らは C++ 標準を追跡するつもりだと思いますが、C++ のサブセットを除いて、C は実質的に時代遅れであると考えています。

Visual Studio 2003 以降の新しいプロジェクトには、既定で [Compile as C++ Code (/TP)] オプションが設定されているため、.c ファイルはすべて C++ としてコンパイルされます。

于 2008-09-24T16:04:11.233 に答える
4

別のポータブル ソリューション:

POSH: ポータブルなオープンソース ハーネス

「POSH は、クロスプラットフォームのライブラリやアプリケーションを作成して移植する手間を大幅に軽減するように設計された、シンプルで移植性があり、使いやすく、統合しやすく、柔軟なオープン ソースの「ハーネス」です。」

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

本で説明され、使用されているように: 移植可能なコードを書く: 複数のプラットフォーム向けのソフトウェア開発入門

-ジェイソン

于 2009-05-25T21:51:50.017 に答える