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\chap03cwork の中の chap03
\ディレクトリーの区切り

例を見比べよう

  • cd \chap03
    → Cドライブ直下の chap03 に移動したいとき
  • cd \cwork\chap03
    → cwork の中の chap03 に移動したいとき

このように、\ は「階層の区切り」として使われます。
コマンドの学習を進めるうえで、とてもよく出てくるので、コメントと一緒に少しずつ慣れていきましょう。

まとめ

このパートでは、C言語のコメントの役割と書き方を学びました。

  • コメントは説明やメモを書くためのもの
  • プログラムの動作には影響しない
  • // は1行コメント
  • /* */ は複数行コメント
  • コメントがあると、他の人や将来の自分が読みやすくなる

特に学習中は、コメントを書くこと自体が理解の整理になります。
コードを書いたら、ぜひ一言でもいいので「この行は何をしているか」をコメントで残してみてください。
それだけで、コードの見通しがぐっと良くなります。