回答編集履歴
1
追記
answer
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
恐らく
|
2
|
-
```
|
2
|
+
```C
|
3
3
|
int main(void)
|
4
4
|
{
|
5
5
|
char str[] = "ABCDEF";
|
@@ -7,4 +7,19 @@
|
|
7
7
|
```
|
8
8
|
のように行を入れ替えてみてください。
|
9
9
|
|
10
|
-
または、コンパイラのオプションで規格をC99にしてください
|
10
|
+
または、コンパイラのオプションで規格をC99にしてください
|
11
|
+
|
12
|
+
---
|
13
|
+
C言語にも規格(≒バージョン)があり、
|
14
|
+
古い規格では、
|
15
|
+
「(ファイルスコープでない)変数はブロックの先頭にまとめて宣言しなければならない」
|
16
|
+
という制約がありました。
|
17
|
+
が、大変読みづらいコードができやすくなります。
|
18
|
+
別言語であるC++はこの制約はありません。
|
19
|
+
|
20
|
+
C99という規格以降はこの制約がなくなりました。
|
21
|
+
これにより例えば、
|
22
|
+
```C
|
23
|
+
for(int i=0; i<10 ; i++) {...}
|
24
|
+
```
|
25
|
+
みたいに書けます。
|