重複の可能性:
C: for loop int 初期宣言
Cプログラミングのステートメントでいくつかの変数を宣言できますfor
か?もしそうなら、c標準のどのバージョンでその機能を見つけることができますか?
重複の可能性:
C: for loop int 初期宣言
Cプログラミングのステートメントでいくつかの変数を宣言できますfor
か?もしそうなら、c標準のどのバージョンでその機能を見つけることができますか?
はい、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 を使用してコードをコンパイルしてください
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);
}
純粋な C では、ステートメントで変数を宣言することはできませんfor
。この機能は C++ でのみ使用できます。C では、すべての変数をコード ブロックの先頭で宣言する必要があります。