1

初心者の質問。

libcorkをVS2010でコンパイルしようとしています。

CIの推測では、通常、次のように関数の先頭で変数を宣言する必要があります。

void
cork_hash_table_clear(struct cork_hash_table *table)
{

    DEBUG("(clear) Removing all entries");

    size_t  i;  // <--- fails to compile unless moved before DEBUG.
    ...

しかし、libcorkは、コードで使用されているため、定義/宣言がたくさんあります。これを可能にするVSコンパイラオプションがあるのだろうか?この質問が新しくない場合は申し訳ありませんが、構文エラーだけが表示され、VSドキュメントの検索に使用できる有用な用語がありません。

4

1 に答える 1

2

関数内の混合宣言とステートメントは、1999バージョンの標準(C99)でCに導入されました。残念ながら、VSは1990年版以降の標準に従わないことを決定しました。

コードをC++としてコンパイルできる場合がありますが、CはC ++の厳密なサブセットではないため、これは興味深い方法でうまく機能しない可能性があります。コードがC++と互換性がない場合、ハーブサッターはIntelCCまたはgccを使用することをお勧めします。

質問VisualStudioは新しいC/C ++標準をサポートしていますか?いくつかの興味深いコンテンツがありますが、C ++もカバーしています(VSはペースを維持するのにはるかに優れています)。

于 2012-08-13T18:32:52.503 に答える