Je crée une horloge alimentée par Arduino et, dans le processus, j'essaye de formater des entiers en chaînes formatées à deux chiffres pour la lecture du temps (par exemple 1 en "01").Formatage de chaîne Arduino Problème
Ce qui suit me donne "erreur: l'expression primaire attendue avant '{' jeton":
char * formatTimeDigits (int num) {
char strOut[3] = "00";
if (num < 10) {
strOut = {'0', char(num)};
}
else {
strOut = char(num);
}
return strOut;
}
Je suis en train de l'utiliser comme suit:
void serialOutput12() {
printWeekday(weekday); // picks the right word to print for the weekday
Serial.print(", "); // a comma after the weekday
Serial.print(hour12, DEC); // the hour, sent to the screen in decimal format
Serial.print(":"); // a colon between the hour and the minute
Serial.print(formatTimeDigits(minute)); // the minute
Serial.print(":"); // a colon between the minute and the second
Serial.print(formatTimeDigits(second)); // the second
}
Toutes les idées qu'est-ce qui me manque ici?
Ok merci! Étant habitué à C#, j'imagine que je supposais qu'il ferait passer une référence à la fonction (eek). – amb9800
Il (votre exemple original) * renvoie * une référence, mais à un objet qui cesse d'exister après la sortie de la fonction (il devient donc une référence qui se balance). C n'a pas de comptage de référence/de récupération de place intégré. – caf