在 avr gcc 中因为硬件条件的限制,默认情况下 sprintf %f 是不可以使用的;
好像有两种解决方法,一种是修改编译参数,另一种是使用 dtostrf 函数。

函数声明:

char *dtostrf(double __val, char __width, char __prec, char *__s);

大致用法:

char buf[32];
dtostrf( value, 5, 2, buf);

对于修改参数这种方式有点麻烦就不做尝试了。

原来宏也是支持变参的(c99之前的不支持)

define SHOW_DIALOG_WITH_PARAMS(_dialogType, ...) \

_dialogType* dialog = new _dialogType;
if (dialog.init(##__VA_ARGS__))

root.showDialog(dialog)