以下の内容はhttps://lipoyang.hatenablog.com/entry/2019/05/14/230714より取得しました。


Arduino系マイコンで超いいかげんなprintf

Arduino系のマイコンでprintfをシリアルに出力するためのいいかげんなマクロ

static char print_buff[256]; // ←メモリが許すなら十分大きくとる
#define printf(...)  sprintf(print_buff, __VA_ARGS__), Serial.print(print_buff)

sprintf()とSerial.print()の区切りがなぜ ; でなく , かというと、下記のようなif文の書き方があった場合にエラーになるため。

if(hoge)
    printf("hoge");
else
    printf("piyo");

printf()の戻り値を受け取るような場合にはエラーになるが、そんなことは滅多にしないだろう。

また、見ての通りリエントラントではないので割り込みやマルチタスクで使う場合は要注意。あくまでもテキトーにコピペしたコードを動かすための、間に合わせの超いいかげんなマクロである。




以上の内容はhttps://lipoyang.hatenablog.com/entry/2019/05/14/230714より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14