2

重複の可能性:
C: for loop int 初期宣言

Cプログラミングのステートメントでいくつかの変数を宣言できますforか?もしそうなら、c標準のどのバージョンでその機能を見つけることができますか?

4

3 に答える 3

3

はい、c99 標準から開始できます。コードのストレート コンパイル:

int main()
{
   for(int i = 0; i<10; i++)
     printf("%d\n", i);
   return 0;
}

(デフォルトの「gnu89」)を使用gccすると、答えが得られます。

関数内main:
エラー: 'for' ループの初期宣言は C99 モードでのみ許可されています
注: オプション -std=c99 または -std=gnu99 を使用してコードをコンパイルしてください

于 2012-12-21T13:47:02.310 に答える
1

C89/C90 では、すべての宣言をブロックの先頭に置く必要があります。

/* valid in C89/C90 */
printf("Hello\n");
{
    int i;
    for (i = 0; i < 10; i++) {
        int j = i % 3;
        printf("%d\n", j);
    }
}

C99 以降では、宣言とステートメントを混在させ、 a の最初の部分で変数を宣言できますfor

/* valid in C99 */
printf("Hello\n");
int whatever;
for (int i = 0; i < 10; i++) {
    int j = i % 3;
    printf("%d\n", j);
}
于 2012-12-21T13:50:41.273 に答える
-1

純粋な C では、ステートメントで変数を宣言することはできませんfor。この機能は C++ でのみ使用できます。C では、すべての変数をコード ブロックの先頭で宣言する必要があります。

于 2012-12-21T13:45:02.023 に答える