変数・関数の命名

このページでは変数や関数の命名について解説します

より詳しく知りたい人は リーダブルコード を読んでみてください

また、Arduino言語公式のスタイルガイド(英語)もあるので こちら も読んでみてください

様々な記述法

よく使われる識別子の記法はいくつかあります

識別子名とは変数や関数など、プログラマが好きな名前を付けられるものの名前のことです

記法名例 (get dataという名前)特徴
アッパーキャメルケース (UCC)GetData単語を大文字で区切る
ローワーキャメルケース (LCC)getData単語を大文字で区切るが先頭は小文字
スネークケースget_data単語をアンダーバーで区切る

言語によって記法の指定があったりなかったりしますが、Arduino言語で書くときに筆者は

対象記法
関数ローワーキャメルケースdigitalWrite()
変数ローワーキャメルケースpushCount
定数すべて大文字のスネークケースSEG_PTN

というふうにしています

識別子名の言語

Arduino言語でプログラムを記述する際に、関数名、変数名に日本語の文字を使うことは規則上は可能です
しかし、環境によってはコンパイルできない場合があるのでお勧めしません

また、関数名、変数名はローマ字ではなく、できれば英語をおすすめします
理由としては、

  • 世界標準である
  • 英語の勉強になる

からです

また、単語はわかりやすいものを使うようにしましょう

識別子名の具体性

識別子名にどこまで具体性を持たせるかによって、プログラムの可読性(人間にとっての読みやすさ)が変わってきます

どこまで具体性を持たせるかは、その識別子名がどのスコープで使われるかなどで決定します

int a = 3;
int rad = 2;

int answer_of_calculation = rad * rad * a;
print("%d", answer_of_calculation);

上記の例は、円周率を3として半径2の円の面積を求めるプログラムですが、変数の命名があまりよろしくありません

int a = 3; // aが何を示しているのかわかりずらい
int rad = 2; // radian(ラジアン)と間違える可能性がある

int answer_of_calculation = rad * rad * a; // 1行しか使わないのに名前が長すぎる
printf("%d", answer_of_calculation);

分かりやすく書き直してみたものが以下の例です

const int PI = 3; // const を付けて定数にして、名前も大文字にする
int radius = 2; // radius(半径)にする

int ans = radius * radius * PI; // わかりやすく短い名前にする
printf("%d", ans);

このように、簡潔な識別子名を付けることで、読み返しやすいプログラムを書くことができます