2015-01-07 5 views
19

私はVS2013がC99の多数の主要なコア言語機能をサポートしていることを知りました。コンパイルリテラル、指定初期化子、可変長マクロ、インターリーブ宣言、ステートメントをサポートしています。VS2013のC99サポートの正式なステータスは?

これは、VS開発者がVisual StudioでC99サポートに向けて重要なステップを実行したことを示しています。しかし、これらの機能の一部はC++言語の一部ではなく、以前に発表された開発戦略(例えば、「VS CコンパイラはC++の一部でもあるC99機能のみをサポートする」など)とは大きく異なるものです。

なので、何が起こっているのかに関する公式または半正式な言葉はありますか?私はネット上で何かを見つけることができないようです。これらのC99機能は正式に発表されましたか? VSでC99サポートを継続することにコミットメントはありますか?あるいは、これは単なる「不正な」非公式の開発ですか? Microsoftの開発者から、この数公務員議論があり

+0

ハーブ・サッター氏は、VS2013でffmpegをコンパイルできるほどに追加したと言いました。 – Praetorian

+0

http://msdn.microsoft.com/en-us/library/hh409293.aspx – BLUEPIXY

+0

私は彼らの最近のC99 [here](http://stackoverflow.com/a/18521417/1708801)にリンクしました –

答えて

10

、言うC++ Conformance Roadmap

ハーブはまた、顧客の要求に応じて、RTM バージョンもいくつかの戦術C99が含まれる、と発表し 言語拡張( にFFmpegを含む)いくつかの人気のあるコミュニティライブラリは現在のVisual Cでコンパイルすることができるようになりますように、Cのコードをコンパイル ++ 2013

だから、これは公式のサポートを持っていますが、私は次の記事より多くのサポートが他の優先事項と競争しなければならないフォームを伝えることができますから戦略的です。

我々は C++11/14 STL Features, Fixes, And Breaking Changes In VS 2013 Blog entry by STLを持って

  • C99 _Bool

  • C99の複合リテラル

  • さらに、いくつかのC99コア言語機能は 2013 RTMで実装されます

  • C99で指定されたitializers

  • C99変数宣言

とで開きますC99 library support in Visual Studio 2013 blog entry by Pat Brenner:私はC99 サポートに関するいくつかの情報を共有したい、このブログ記事では

は、Cランに追加しましたVisual Studio 2013のタイムライブラリ。

で終わり、

で終わります。これはC99ライブラリ 関数の完全なサポートではないことがわかります。理解できない部分は、 です。

  • tgmath.hヘッダーがありません。このヘッダーにはCコンパイラーのサポートが必要です。 ctgmathヘッダーが追加されました。これは可能です。これは、ヘッダーにtgmath.hヘッダーのみの ccomplexとcmathヘッダーが必要ないためです。
  • uchar.hヘッダーがありません。これはCのUnicode TRのものです。 printfファミリのいくつかの書式指定子は、まだサポートされていません。
  • snprintf関数とsnwprintf関数は、stdio.hとwchar.hにはありません。 STLは、積極的にブログにコメントを扱い、彼らが要約するのは難しいですが、我々は将来の追加が競合する優先順位に依存します見ることができますので、もう少し面白いです

おかげで言う別のブログ記事C Runtime (CRT) Features, Fixes, and Breaking Changes in Visual Studio 14 CTP1指摘しcremnoする:Visual Studioで

を、我々は完全に任意のライブラリ機能を除いて、C99 標準ライブラリを実装している「14」CTPその Visual C++の コンパイラでまだサポートされていないコンパイラ機能(特に<tgmath.h>は実装されていません)に依存します。 疑いもなく残っているいくつかの適合問題があります。我々はいくつかのことを知っています。 _Exitがなく、wcstokの署名が間違っています。 です。バグや見つからない場合は、Microsoft Connectに報告してください。 のバグを報告した場合は、 RTMより前に修正できる可能性が非常に高いです。

などがあり、簡単に要約することはできません。

+2

ちなみに、VS2015の ''と 'snprintf()'が利用可能です。他にもC99に関連する変更があります。 [this](http://blogs.msdn.com/b/vcblog/archive/2014/06/18/crt-features-fixes-and-breaking-changes-in-visual-studio-14-ctp1.aspx)を参照してください。 )古いブログ記事。 – cremno

+0

@クレモありがとう!私はこれを数回、VLAの古い回答で調べてみましたが、それを逃しました。 –

関連する問題