Buffers de char en Arduino
Buffers fijos evitan el vaivén de heap de String en 2 KB.
// Fixed char buffers avoid String's heap churn on a 2 KB board.
char label[16];
int batch = 0;
void setup() {
Serial.begin(9600);
}
void loop() {
batch++;
// snprintf formats safely into the buffer, never past it.
snprintf(label, sizeof(label), "batch-%03d", batch);
Serial.print(label);
Serial.print(" len=");
Serial.println(strlen(label));
delay(1000);
}
Cómo funciona
char label[16]reserva el espacio una vez, global.snprintfformatea adentro y jamás escribe más allá del final.strlenconfirma qué aterrizó de verdad.
Palabras clave y builtins usados aquí
charintloopsetupsizeofvoid
El intento, en números
- Líneas
- 17
- Caracteres a escribir
- 359
- Tokens
- 83
- Ritmo de tres estrellas
- 65 tpm
Al ritmo de tres estrellas de 65 tokens por minuto, este intento toma unos 77 segundos.
Paso 1 de 3 en Datos; paso 19 de 27 en Fundamentos del lenguaje.