C言語の特徴や欠点、組込みに強い理由
特徴1 ハードウェアに近い制御ができる
まず、C言語は比較的※低水準言語に近い感覚で操作することができ、ハードウェアに近い制御ができます
特徴2 軽量で高速なコードが書きやすい
ほかの言語と比較して軽量で高速なコードが書きやすいです
たとえば、
CとC++
で比較するとこんな感じです
Cの場合
int main(void) {
DDRB |= (1 << DDB5);
while (1) {
PORTB |= (1 << PORTB5);
_delay_ms(500);
PORTB &= ~(1 << PORTB5);
_delay_ms(500);
}
}
C++の場合
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言語を使った組み込みマイコンを学習するのがいいかなと感じています
そういえば、マイコンって何?組込みって何?と思っている人は多いと思います
ですので、次回はマイコンや組込みがどういったものか簡単に説明したいと思います