
C言語のきほん|C言語のコメントを使ってみよう
コメントを書ける人は、コードも伝わる。C言語は「動く」だけでなく「読める」ことも大切です。
ここまでの学習で、printf や scanf を使って、文字を表示したり、キーボード入力を受け取ったりできるようになってきましたね。
ここからは、プログラムを「動かす」ことに加えて、読みやすくする工夫も身につけていきましょう。
その中心になるのが、コメント(注釈)です。
コメントは、プログラムの中に書く説明文やメモのことです。
プログラムの実行には影響しませんが、コードの意味や意図を伝えるのにとても役立ちます。
特に学習中は、次のような場面でコメントが大活躍します。
- この変数が何を表しているかを書いておく
- この行で何をしているかをメモしておく
- 入力の順番や注意点を残しておく
- 後で見返したときに思い出しやすくする
最初は「コメントはなくても動くし、後回しでもいいかな」と思いやすいです。
でも、コメントを書く習慣があると、コードの理解がかなり早くなります。将来の自分にも、とてもやさしい書き方になりますよ。
このパートでは、C言語で使うコメントの基本を、やさしく丁寧に整理していきます。
コメントって何のためにあるの?
まず大前提として、コメントはプログラムの説明文です。
コンパイラはコメント部分を実行しません。つまり、コメントを書いてもプログラムの動作は変わりません。
でも、読む人にとっては大きな助けになります。
コメントの役割
| 役割 | 例 |
|---|---|
| プログラム全体の説明 | 何をするプログラムかを書く |
| 変数の意味の説明 | age は年齢、など |
| 処理の意図の説明 | 入力を受け取る、表示する、など |
| 注意点のメモ | 入力順や文字コードの注意を書く |
コメントがあると分かりやすい例
たとえば scanf を使うコードでは、変数名だけでも意味は分かりますが、コメントがあるともっと読みやすくなります。
int study_pages; // 今日進めるページ数
int practice_count; // 解く演習問題の数
int focus_minutes; // 集中する時間(分)このコメントがあるだけで、入力順や役割がすぐに分かりますよね。
C言語のコメントには2種類ある
C言語では、主に次の2種類のコメントを使います。
コメントの種類(一覧)
| 書き方 | 使いどころ | 特徴 |
|---|---|---|
| // | 1行の説明 | その行の終わりまでコメント |
| /* ... */ | 複数行の説明 | 長めの説明を書ける |
この2つを使い分けられるようになると、コードがかなり読みやすくなります。
// で始まる1行コメント
いちばんよく使うのが、// で始まる1行コメントです。
基本ルール
- // を書いた位置から、その行の最後までがコメント
- 行の先頭に書けば、その行全体がコメント
- 文のあとに書けば、右側に補足コメントを書ける
例(行全体のコメント)
// これは1行のコメントです
printf("hello, world\n");例(行の途中からコメント)
printf("hello, world\n"); // ここにもコメントを書けますこの書き方はとても便利で、学習中は特によく使います。
使いどころの例
| 使い方 | 例 |
|---|---|
| 処理の見出し | // 入力を受け取る |
| 変数の説明 | int age; // 年齢 |
| 行の補足 | printf(...); // 結果を表示 |
/* */ で囲む複数行コメント
長めの説明を書きたいときは、/* と */ を使うコメントが便利です。
基本ルール
- /* から始まる
- */ で終わる
- その間がコメントになる
- 複数行にまたがって書ける
例(複数行コメント)
/* これは複数行のコメントです。
ここには長い説明を書くことができます。 */
printf("hello, world\n");どんなときに使う?
- プログラム全体の説明をまとめて書きたいとき
- 学習メモを少し長めに残したいとき
- 一時的に処理の説明をしっかり書きたいとき
/* */ の注意点(ネストできない)
ここは地味ですが大事なポイントです。
/* / の中に、さらに / */ を入れることはできません。
例(よくない書き方のイメージ)
/* 外側のコメント
/* 内側のコメント */
ここもコメントのつもり
*/このような書き方は、コメントの終わり位置が分からなくなってしまうため、エラーの原因になります。
覚え方
- // は1行用
- /* */ は複数行用
- /* / の中にさらに / */ は入れない
最初のうちは、普段は // を使って、長い説明だけ /* */ にすると安全です。
サンプルプログラム
「キー入力した値で学習メモを表示する」シンプルなプログラム例です。コメントの役割が分かる形で紹介します。
ファイル名:3_8_1.c
// キー入力した値で学習メモを表示するプログラム
#include <stdio.h>
int main(void)
{
int study_days; // 学習日数
int solved_count; // 解いた問題数
int target_score; // 目標点
// 学習日数、問題数、目標点をこの順に入力する
scanf("%d%d%d", &study_days, &solved_count, &target_score);
printf("こんにちは。学習状況を表示します。\n");
printf("学習を始めて%d日目です。\n", study_days);
printf("これまでに%d問の問題を解きました。\n", solved_count);
printf("次の目標は%d点です。\n", target_score);
return 0;
}実行結果例
入力待ちになったら、次のように数字を3つ入力して Enter を押します。
入力例
7 15 80実行結果例
こんにちは。学習状況を表示します。
学習を始めて7日目です。
これまでに15問の問題を解きました。
次の目標は80点です。このプログラムでは、コメントがなくても動きます。
でも、コメントがあることで次のことがすぐ分かります。
- 何をするプログラムか
- 各変数の意味
- scanf で何をどんな順に入力するか
これが、コメントの大きな価値です。
コメントがあると理解しやすくなるポイント
ここでは、変更版サンプルの中で、コメントがどこを助けているかを見ていきます。
プログラムのタイトルコメント
// キー入力した値で学習メモを表示するプログラムこれは、プログラム全体の説明です。
ファイルを開いた瞬間に「何をするコードなのか」が分かります。
特に役立つ場面
- 似たような練習ファイルが増えてきたとき
- 後日見返したとき
- 他の人に見せたとき
変数の横のコメント
int study_days; // 学習日数
int solved_count; // 解いた問題数
int target_score; // 目標点変数名だけでも意味はありますが、コメントがあると確実です。
特に学習中は、英語の変数名にまだ慣れていないこともあるので、コメントで補うのがとても有効です。
scanf の前のコメント
// 学習日数、問題数、目標点をこの順に入力する
scanf("%d%d%d", &study_days, &solved_count, &target_score);scanf は入力順が大事なので、こういうコメントがあるとかなり助かります。
実行時に「何をどの順で入れるんだっけ?」となりにくくなります。
コメントを書くときのコツ
コメントは便利ですが、何でもかんでも書けばいいというわけでもありません。
読みやすくするためのコツを押さえておくと、さらに使いやすくなります。
コツ1:何をしているかを書く
良いコメントは、「この行で何をしているか」が分かるものです。
例(分かりやすい)
// 3つの整数を入力として受け取る
scanf("%d%d%d", &study_days, &solved_count, &target_score);例(少し弱い)
// scanf
scanf("%d%d%d", &study_days, &solved_count, &target_score);関数名をそのまま書くだけだと、説明としては少し弱いです。
「何を入力するのか」「何のためか」があるとぐっと良くなります。
コツ2:変数の意味は最初に書く
変数の宣言のところでコメントを入れておくと、その後の理解がすごく楽になります。
コツ3:長くなりすぎるなら /* */ を使う
1行に入りきらない説明は、無理に // で続けるより、複数行コメントを使った方が読みやすいです。
例
/* 入力はこの順番で行う
1. 学習日数
2. 解いた問題数
3. 目標点 */
scanf("%d%d%d", &study_days, &solved_count, &target_score);コツ4:コードとコメントの内容をズラさない
コードを修正したのにコメントを直し忘れると、逆に混乱の原因になります。
コメントは「今のコードに合っているか」を意識して更新しましょう。
コメントはプログラムの動作に影響しない
ここは安心してほしいポイントです。
コメントを増やしても、プログラムの動作そのものは変わりません。
例(コメントあり・なしで動作は同じ)
コメントあり
// あいさつを表示する
printf("こんにちは\n");コメントなし
printf("こんにちは\n");どちらも表示結果は同じです。
つまりコメントは、人間のための情報です。
この視点を持っておくと、「コメントを書く意味」がはっきり見えてきます。
学習中に特におすすめのコメント位置
学習段階では、次の3か所にコメントを書く習慣をつけると効果的です。
おすすめの場所(一覧)
| 場所 | 書く内容 |
|---|---|
| ファイル先頭 | 何をするプログラムか |
| 変数宣言の横 | 変数の意味 |
| scanf の前 | 入力する内容や順番 |
これだけでも、かなり読みやすくなります。
コメントの練習としてやってみると良いこと
コメントは「読む」より「自分で書く」方が身につきます。
次のような練習がおすすめです。
練習アイデア
- 3_8_1.c にコメントを追加してみる
- scanf の入力順をコメントで書いてみる
- printf の各行に、何を表示しているか一言メモを付ける
たとえば、以前の %d の練習コードにもコメントを入れると、こんな感じにできます。
ファイル名:3_8_2.c
// 学習計画を表示するプログラム
#include <stdio.h>
int main(void)
{
// 今日進めるページ数を表示する
printf("今日は%dページ進める予定です。\n", 8);
// 解く演習問題の数を表示する
printf("演習問題を%d問解くつもりです。\n", 3);
return 0;
}こういう練習をしておくと、あとでコード量が増えても整理しやすくなります。
補足:ディレクトリー階層を示す \ の意味(やさしく整理)
本文の補足にある内容も、ここでやさしく整理しておきます。
コマンド操作でよく出てくる \ は、Windowsのパス(住所)で大事な記号です。
パスって何?
パスは、ファイルやフォルダーの場所を表す「住所」のようなものです。
\ の役割(Windows)
| 書き方 | 意味 |
|---|---|
| \cwork | ルート直下の cwork |
| \cwork\chap03 | cwork の中の chap03 |
| \ | ディレクトリーの区切り |
例を見比べよう
- cd \chap03
→ Cドライブ直下の chap03 に移動したいとき - cd \cwork\chap03
→ cwork の中の chap03 に移動したいとき
このように、\ は「階層の区切り」として使われます。
コマンドの学習を進めるうえで、とてもよく出てくるので、コメントと一緒に少しずつ慣れていきましょう。
まとめ
このパートでは、C言語のコメントの役割と書き方を学びました。
- コメントは説明やメモを書くためのもの
- プログラムの動作には影響しない
- // は1行コメント
- /* */ は複数行コメント
- コメントがあると、他の人や将来の自分が読みやすくなる
特に学習中は、コメントを書くこと自体が理解の整理になります。
コードを書いたら、ぜひ一言でもいいので「この行は何をしているか」をコメントで残してみてください。
それだけで、コードの見通しがぐっと良くなります。
