teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

追記

2016/03/01 01:27

投稿

ozwk
ozwk

スコア13553

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
+ みたいに書けます。