名前空間とは?【Arduino IDE備忘録#6】

IoT

この記事は2025年11月に書かれたものです。

はじめに

農業IoT開発やそのほかIoTの勉強の際に気になったことを備忘録としてまとめています。

普段は下のような感じで書いています。

名前空間とは

名前空間とは「名前の衝突を防ぐための“名前のグループ分け”」ができる機能です。

まずは、高校生のクラスと氏名で考えるとわかりやすいです。例えば、3年B組の山田太郎くんと3年C組の山田太郎くんがいたとします。この時、”山田太郎”だけだと、どちらの山田太郎くんかわかりません。そこで、”3年B組の”と指定すればただ一人に特定できます。ただし、3年B組に山田太郎くんが2人以上いないことが前提です。

次に、これをプログラムに当てはめて考えてみます。コードは適当です。

namespace MyDevice {
  void begin() {
    Serial.println("initialized!");
  }
}
namespace YourDevice {
  void begin() {
    Serial.println("initialized!");
  }
}

void setup() {
  Serial.begin(115200);
  MyDevice::begin();       // ← MyDevice内のbegin()を使う
  YourDevice::begin();  // ← YourDevice内のbegin()を使う
}

void loop() {
  //何もしない
}

上のコードのように書けば、MyDeviceとYourDeviceで同じbegin()が重複していても問題なく動作するということです。

名前空間のメリットとデメリットを表にまとめました。他にも色々あるかもしれませんが、簡単にまとめています。

メリットデメリット
同じ名前の関数や変数を安心して使える書くときに少し長くなる
用途ごとに分けてコードを分かりやすくできる小規模プログラムだとかえって面倒になる
どのグループの関数かがすぐ分かる他の人には少し分かりにくくなることがある
自作ライブラリを作るときに安全Arduino IDEでは補完(自動候補)が出にくい
まとめて再利用しやすい名前空間を増やしすぎるとややこしくなる

最後に

今回は名前空間について勉強してみました。

正直わかったようでわからない感じですが、上手く使えば強力な武器になりそうです。

以上!

おすすめの書籍

 もっと詳しくM5Stackについて知りたい!という方はこちらの書籍がおすすめです。とても詳しく載っていてわかりやすいです。

とりあえず何か作ってみたい!という方にはこちらの書籍がおすすめです。書いてある通りにやるだけでお手軽にIoTデバイスを作ることができます。

Arduinoで電子工作したい方にはこちらもおすすめです!Arduinoでどんなことができるのか、一目でわかる一冊になっています。

※Amazonのアソシエイトとして、当メディア(Nラボ備忘録)は適格販売により収入を得ています。

他記事のご紹介

当ブログではさまざまな記事を投稿しています。最近はPythonで物理シミュレーションをやってみたり、JavaScriptの記事も人気が出てきています。ぜひご覧ください。

コメント

タイトルとURLをコピーしました