1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ゼロから始めるマイコン③

Last updated at Posted at 2025-10-05

C言語の特徴や欠点、組込みに強い理由

特徴1 ハードウェアに近い制御ができる

 まず、C言語は比較的※低水準言語に近い感覚で操作することができ、ハードウェアに近い制御ができます

低水準言語とは

特徴2 軽量で高速なコードが書きやすい

ほかの言語と比較して軽量で高速なコードが書きやすいです
たとえば、  CとC++ で比較するとこんな感じです

Cの場合

LED.c
int main(void) {
   DDRB |= (1 << DDB5);

   while (1) {
       PORTB |= (1 << PORTB5);
       _delay_ms(500);
       PORTB &= ~(1 << PORTB5);
       _delay_ms(500);
   }
}

C++の場合

LED.cpp
class LED {
public:
   LED(int pin) : pin_(pin) {
       pinMode(pin_, OUTPUT);
   }

   void blink(int duration) {
       digitalWrite(pin_, HIGH);
       delay(duration);
       digitalWrite(pin_, LOW);
       delay(duration);
   }

private:
   int pin_;
};

LED led(13);

void loop() {
   led.blink(500);
}

 内容に関してはまだ理解できなくてもかまいませんが、コードが単純なのがわかるかと思います

特徴3 標準ライブラリが小さい

 このあたりから、欠点ともいえるものを紹介していきます
 標準ライブラリ(便利な機能だと思ってください)が少ないため、そういった機能は自分で設計しないといけないことが多いです
 逆を言えば、余計なものが少ないので高速化に一役買っているとも言えます

特徴4 ハードウェアごとにプログラムする必要がある

 実は組込みプログラミングにおいて当たり前なんですが、プログラムはハードウェアごとに作る必要があります
 ですが、最近の言語だとプログラムを実行するときにハードウェアごとの翻訳を自動でしてくれたりします
 C言語はこれを自力でしないといけません


 ほかにもありますが、こういったところが特徴となってくると思います
総合的に見て、私はC言語を使った組み込みマイコンを学習するのがいいかなと感じています
 そういえば、マイコンって何?組込みって何?と思っている人は多いと思います
 ですので、次回はマイコンや組込みがどういったものか簡単に説明したいと思います

低水準言語とは・・・

 コンピュータが直接理解できる言語
 ・機械語
    0と1で構成されたコンピュータ自身が直接理解できる唯一の言語
  ・アセンブラ言語
   機械語を人間がわかりやすいように英数字と記号で構成し、1対1で対応できるようにした言語

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?