2011-07-14 13 views
13

Microsoft Visual Studio 2010がC99をサポートしているかどうかを知りたいと思います。そうでない場合は、intptr_tuintptr_tのような標準タイプをどのように使用できますか?Microsoft Visual Studio 2010はc99をサポートしていますか?

+0

[Visual Studioで新しいC/C++標準をサポートしますか?](http://stackoverflow.com/questions/146381/visual-studio-support-for-new-cc-standards) –

+1

これは2008版です正確な複製はできません。 –

+0

http://herbsutter.com/2012/05/03/reader-qa-what-about-vc-and-c99/かなり多くは、主題について言いたいことを言います。 –

答えて

8

私が知る限り、Visual Studio 2010はC99をサポートしていません。 stdint.hの型を使用するには、typedefを使用する必要があります。これを行うには、クロスプラットフォームな方法は、次のようになります。 Visual Studio support for new C/C++ standards?

+0

私が使用する印刷要素はどうですか? C99では** zd **は** 32ビット環境と64ビット環境の両方でうまく動作します。 – thetna

+0

申し訳ありませんが、 "印刷要素"とは何ですか、 "zd"とは何ですか? –

+1

**%zd ** ** intptr_t **の印刷係数** **%** ** ** int ** – thetna

11

のVisual Studio 2010のC99の構文をサポートしていません:

#ifdef _WIN32 
typedef signed short int16_t 
#else 
#include <stdint.h> 
#endif 

もこのこの質問を参照してください。 stdint.hは、すべてのC/C++コンパイラでは非常に一般的なファイルですが、使用するVisual Studioのバージョンにかかわらず、 Windows SDKに含まれているVisual C++ 10.0インストールに存在します。

  • C:

    stdint.hはで見つけることができます\プログラムファイル(x86の)\のMicrosoft Visual Studioの10.0 \ VC \このファイルはintptr_tのためのtypedefを提供してい

\含めます。あなたが好きなCやC++プロジェクトでも自由に使用できます。

2

Microsoft CはC99をサポートしていません。しかし、MSVC 16(Visual Studio 2010で提供されているもの)は今後のC++ 0x標準のかなりの部分を実装しています。 C++ 0xのは、このようなstdint.hinttypes.hとしてC99からのヘッダの一部を取り入れている - 私はMSVCは、C99のもう少しをサポートしたい(あなたはMSVC 16とC99のいくつかの一口を取得

は、小さなことに感謝して理由ですストレートCファイルをコンパイルするとき)。

関連する問題