[Arduino]printlnを調べてみた

Arduino
この記事は約2分で読めます。

Arduinoのシリアル通信上で出力の1つに

Serial.println()

があります。

また、Arduinoはプログラムを書き込むメモリがものすごく小さいです

たくさんprintlnを使うとその分メモリを使います

printlnを調べてみる

実際に書き込まなくてもコンパイル時に結果が出るので何バイト消費してるかを比べます

検証ソースコード


void setup() {
Serial.begin(9600);
Serial.println("0");
//Serial.println('0');
//Serial.println(0);
//Serial.println();
//Serial.print(' ');
}
void loop() {
}

シリアル通信を開始して、出力するプログラムです。

結果

関数スケッチ変数
なし1390182
println(0)1652186
println(‘0’)1432186
println(“0”)1428188

 自分の予想では引数に数値の0を入れるほうが消費が少ないと思っていましたが、1番消費してしまいました。

文字列”0″の場合はスケッチでは’0’と比べて少ないですが、何故か変数の消費が多くなりました。


また、print()関数ですが、引数に何も入れない場合と「”」のように何も与えない場合は文字がないとコンパイル時にエラーが出ました。

printlnは改行が入るのでそのため、引数に値がなくても実行できるのかな?


どれが最適なものとは言い切れませんが、参考になりそうです

コメント