C言語学習ポータル(無料版) 学習コンテンツ つまずきとエラー セミコロンの書き忘れ

🚪 はじめてのC

セミコロンの書き忘れ

どんなときに起きるか

error: expected ';' before 'printf' や error: expected ';' before '}' token(clangは error: expected ';' after expression)。しかも指摘された行を見ても何も間違っていません。

なぜそうなるのか

文の終わりの ; が無いと、コンパイラは次の行までを1つの文だと思って読み続け、行き止まりで初めて「ここに ; があるはずだ」と気づきます。だからエラーは書き忘れた行の1つ下に出ます。

直し方・再発防止

エラー行の1つ上の行の末尾を見ます。セミコロン1個の抜けが何十行分のエラーを連鎖させることもあるので、一番上のエラー1件だけを直して、すぐ再コンパイルするのが早道です。

セミコロン警察(4コマ漫画)
4コマで見る「セミコロン警察」

アプリでしっかり学ぶ(無料・登録不要) つまずき一覧へ

同じ場面で起きやすいつまずき

scanf で & を付け忘れるscanf("%d", n); と書くと gcc は warning: format '%d' expects … scanf のあとに改行が残るscanf("%d", &age); の次に置いた scanf("%c", &c) や fgets が、入力を待… printf の書式指定子と型が合っていないprintf("%d\n", 3.14); が 0 や意味不明な数を表示します。printf("%s\n", 5…

もっと先へ:ポインタ・メモリ・ファイル入出力・セキュアコーディングを含む全26トラックと、段位検定・模試のフルセットは完全版に収録しています。

完全版(BOOTH)を見る

📚 姉妹教材:手を動かして覚える Linux 教材 — Linuxとインフラの仕組みを地図で学ぶ

Web版 / BOOTH