驚いたことに、C99 stdint.hがMS Visual Studio 2003から欠落していることがわかりました。彼らには理由があると確信していますが、どこでコピーをダウンロードできるか知っていますか?このヘッダーがないと、uint32_tなどの便利なタイプの定義がありません。
このヘッダーのMSバージョンを次からダウンロードできます。
https://github.com/mattn/gntp-send/blob/master/include/msinttypes/stdint.h
ポータブルなものはここにあります:
http://www.azillionmonkeys.com/qed/pstdint.h
Software Rambling sブログに感謝します。
自分で定義するだけです。
#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
更新:Visual Studio 201およびVisual C++ 2010 Expressの両方にstdint.h
があります。 C:\Program Files\Microsoft Visual Studio 10.0\VC\include
にあります
Visual Studio 2003-2008(Visual C++ 7.1-9)は、C99互換性を主張しません。 (コメントについてはrdentatoに感謝します。)
Boostには、探しているタイプのcstdint.hppヘッダーファイルが含まれています。 http://www.boost.org/doc/libs/1_36_0/boost/cstdint.hpp
MicrosoftはC99をサポートしておらず、計画も発表していません。私は彼らがC++標準を追跡するつもりであると信じていますが、C++のサブセットを除いてCは事実上時代遅れだと考えています。
Visual Studio 2003以降の新しいプロジェクトには、デフォルトで「C++コードとしてコンパイル(/ TP)」オプションが設定されているため、.cファイルはすべてC++としてコンパイルされます。
別のポータブルソリューション:
POSH:ポータブルオープンソースハーネス
「POSHは、クロスプラットフォームのライブラリやアプリケーションの作成と移植の面倒を大幅に軽減するように設計された、シンプルでポータブル、使いやすく、統合しやすく、柔軟なオープンソースの「ハーネス」です。」
http://poshlib.hookatooka.com/poshlib/trac.cgi
本で説明および使用されているとおり:ポータブルコードの記述:複数のプラットフォーム用のソフトウェア開発入門ブライアンフック http://books.google.ca/books?id=4VOKcEAPPO0C
-ジェイソン