Следующий код работает как задумано, используя версию программного обеспечения Arduino 0022 и Arduino Duemilanove с ATmega 328:
#define ARG_DELIMITER ','
class SlaveTalkClass
{
public:
String join(const String strs[], const int len) {
String result = "";
for (int i = 0; i < len; i++) {
result += strs[i] + ARG_DELIMITER;
Serial.println(result);
}
return result.substring(0, result.length() - 1);
}
} SlaveTalk;
void setup()
{
Serial.begin(9600);
}
void loop()
{
const String args[3] = {"foo", "bar", "baz"};
Serial.println(SlaveTalk.join(args, 3));
}
Он последовательно печатает на последовательном мониторе следующее:
foo,
foo,bar,
foo,bar,baz,
foo,bar,baz