第13回 コメント

今回はスケッチを見やすくします。

目次

キッチンタイマーのスケッチを作る前に

第12回までの記事で、LEDを1秒ごとにつけたり消したりするスケッチを作成して、実際にArduinoを動作させてみました。

いよいよこれからキッチンタイマーのスケッチを新規に作成していきますが、途中でいろいろな動作確認をするために別のスケッチを作成します。

今の時点では作成したスケッチは1つしかありませんが、今後スケッチがどんどん増えてくるわけです。

PCで何かのファイルをいくつか作成するとき、ファイルがごちゃごちゃになってきた経験はありませんか? ファイル名に日付を入れたり、ファイル名に変更内容を簡単に付け足したり、いろいろな工夫をしてファイルを区別していたかもしれません。

これから作成するスケッチは、基本的にファイル名を工夫してわかるようにします。例えばファイル名が「LED_blink」であれば、1秒ごとにLEDをつけたり消したりするスケッチとわかります。

でも、例えばスケッチ作成の練習として0.5秒ごとにLEDをつけたり消したりするスケッチを別につくりたいとき、ファイル名を工夫しても、ファイル名のみからスケッチの中身を思い出すのは難しくなってきそうです。

これはプログラムを作成するときに必ず発生する問題です。

そこで、どのようなプログラミング言語でも、プログラムの中にメモ書きできる仕組みが用意されています

このメモ書きできる仕組みを利用してスケッチの中に動作内容を書いておけば、あとからスケッチをみたときにスケッチの中身まで見なくてもメモ書きを読めば動作内容がすぐにわかるというわけです。

それでは、これから作成した「LED_blink」スケッチの中に、「1秒ごとに12番ピンに接続したLEDをつけたり消したりするスケッチ」というメモ書きを書きましょう。

コメント

「LED_blink」スケッチの中に「1秒ごとに12番ピンに接続したLEDをつけたり消したりするスケッチ」と直接書き込むと、当然ながら(?)、以下のようにArdiuno IDEに怒られます(例のやつです。気に食わないとダメなところを目立つようにして英語で怒られるやつです)。

コメント文エラー

それでは、これからスケッチにメモ書きするやり方を確認していきましょう。

その前に用語を覚えたいと思います。

スケッチ(プログラム)に書くメモのことを「コメント」と呼んでいます。

C/C++言語ではコメントの書き方2通り用意されています。それではひとつずつ覚えていきましょう。

なお今後、命令の説明図の右上に「C/C++言語」「Arduino」とマークをつけます。

「C/C++言語」マークがついている命令はC/C++言語の文法です。例えばRaspberry PiではC/C++言語でプログラミングできますが、そのときも同じになります。

「Arduino」のマークがついている命令はArduino独自の命令です。Rasbpberry Piなど他のコンピュータでは使用できません。

ブロックコメント

コメントを、最初を「/*」、最後を「*/」で囲むとその部分がコメントとなります。先ほどのようにスケッチにコメントを書く場合は、

/* 1秒ごとに12番ピンに接続したLEDをつけたり消したりするスケッチ */

と書きます。このコメントは複数行で書いても問題ありません。例えば以下のように書いてもOKです。

/*1秒ごとに12番ピンに接続したLEDを
つけたり消したりするスケッチ */

このコメントの書き方では「/*」から始まって、「*/」が出てくるまでどこまでもコメントになります。

以下のように書けば、命令の意味を書いておくこともできます。

digitalWrite(12, HIGH);  /* 青色LEDをつける */

C/C++言語ではもうひとつコメントの書き方があります。

インラインコメント

「//」と「/」を2回続けて書くと、この「//」から改行まで、つまりその行の終わりまでがコメントになります。

以下のコメントの書き方はOKですが、

// 1秒ごとに12番ピンに接続したLEDをつけたり消したりするスケッチ

以下のコメントは2行目が怒られます。

// 1秒ごとに12番ピンに接続したLEDを
つけたり消したりするスケッチ

また、先ほどのように命令の意味を書いておくことができます。

digitalWrite(12, HIGH);  // 青色LEDをつける

先ほどの「/* コメント */」のコメントより入力する文字が少ないので、こちらのコメントの方がいいですよね。

例の謎の文章の解明

以前からずっと気になっていたあれ、ありますよね。

デフォルトコメント文

もうわかりますよね。これはコメントだったんです。

コメントはちょっと薄いグレーの色になっていますよね。

これは、Arduino IDEがこの行をコメントと認識してグレーにしているためです。スケッチの主体は命令で、コメントは脇役(わきやく)ということで、コメントがそれほど目立たないようにグレーになっています。

このコメントは英語で書いてありますが、日本語の意味は以下になります。

“put your setup code here, to run once:”
「1回だけ実行する命令をここに書いてください」

“put your main code here, to run repeatedly:”
「ずっと繰り返し実行する命令をここに書いてください」

もうこの仕組みはわかっていますので、このコメントは必要ないですよね。あとで削除しましょう。ただ、このコメントの先頭にスペースが入っているのは気にはなりますが…

スケッチにコメントを書こう

それでは、あとからスケッチを見て内容がすぐにわかるようにコメントを書いてみます。

書く内容は、スケッチの動作内容以外にも自分で書いておきたい内容を書いておいてください。といっても何を書けばいいの?って感じですよね。

一般的にプログラムの先頭には以下のような項目を書くケースが多いです。

  • プログラム名
  • プログラムの動作内容
  • 作成日
  • 変更した場合、変更日と変更内容
  • プログラムのバージョン(Version 1.0など)
  • 作成者名
  • 注意事項
  • ライセンス(商用に使ってはダメ、とか細かい規定)

とはいっても、個人でつくるものですので、自分があとから見てわかる内容であればOKです。

コメントは複数行で書きますので「/* コメント */」の方で書きましょう。それでは作成した「LED_blink」を開いてください。

以下のようにスケッチの先頭に2行ぐらい空けましょう。

コメント1

次に1行目に「/*」と入力します。

コメント2

あれ? なんだか全体がグレーになりましたよね。これは、Arduino IDEが「/*」を認識して「*/」までの文字をコメントと認識するためです。この状態ではコメントの終わりの「*/」がないので、最後までコメントとして認識しているわけです。

次にリターンキーを押してください。以下のように自動的に「*/」を入力してくれましたよね。

コメント3

これで「/*」から「*/」までの間がコメントとなり、ここに自由にコメントが書けます。コメント内容は自分で考えて入力してみてください。以下は入力例ですが、特に決まりはありませんので、自分が後から見てわかる内容にしましょう。

コメント4

あとは例の最初から書かれていたコメントは削除しておきます。

コメント5

これでコメントが書けました。今後自分でスケッチを作成するとき、できるだけコメントを書いておくようにしてください。

他の人のコメントの書き方を見てみよう

ここで、他の人はどのようなコメントを書くのか見てみましょう。

Arduino IDEの「ファイル」→「スケッチ例」メニューを選択してください。このメニューは、スケッチのサンプルがたくさん入っています。

スケッチ例メニュー

この中から、「01.Basics」の「Blink」を選択してください。

Blinkサンプルスケッチ

これはArduino IDEに入っているLEDを1秒ごとにつけたり消したりするスケッチです(なんだあったんだ、って感じですね)。スケッチの最初の方にコメントがたくさん書いてあります。というかスケッチの命令本体よりコメントの方が長いですよね。

書いてある内容は以下です。

  • 動作内容(「LEDを1秒つけて1秒消す、という動作を繰り返す」という内容)
  • Arduinoの各製品の違いの説明
  • 変更日と変更した人の名前
  • このプログラムは自由に使っていいですよ、という内容
  • サイトの説明へのリンク
コメント例

ところで、「LED_blink」に入力したコメントと、このスケッチ例にある「Blink」スケッチのコメントですが、ちょっと書き方が違いますよね。自分で入力したコメントは各行の先頭に「*」が付いています。スケッチ例のコメントは「*」がありません。どちらもコメントの書き方のルールにあっています。これは好みの問題なので自分が見やすい書き方で問題ありません。

先ほどのように「/*」と入力してコメントを書いていくと自動的に「*」が入力されてしまいますよね。これを避けたい場合は以下のように入力します。

最初にコメントを入力したときと同様に「/*」と入力してリターンキーを押して以下のような状態にしてから、2行目の「*」を削除します。

*なしのコメント

この状態で2行目から書き始めると、自動で「*」が入力されなくなります。

*なしコメント例

Arduino IDEでは、リターンキーを押すと、前の行をみて推測して次の行を準備してくれます。一度「*」がない行を作れば、次の行からは「*」を自動的に入力しなくなります。

更新履歴

日付内容
2019.7.21新規投稿
2021.8.22新サイトデザイン対応
2022.2.9誤記訂正
通知の設定
通知タイミング
guest
0 コメント
本文中にフィードバック
全てのコメントを見る
目次