Descrizione
La funzione sizeof () in Arduino è una funzione integrata che ci dà la dimensione di una variabile o di un array. La dimensione di una variabile è i byte totali necessari per archiviare il valore variabile, mentre la dimensione di un array è i byte totali necessari per archiviare tutti i suoi elementi.
Sintassi
Ecco la sintassi di base per la funzione sizeof () in Arduino:
sizeof (variabile)
In questa sintassi, la variabile è il nome della variabile o del tipo di dati che si desidera determinare la dimensione di. La funzione sizeof () fornisce la dimensione della variabile in byte come valore intero.
Parametri
Questa funzione richiede il seguente parametro:
variabile: di cui dobbiamo trovare le dimensioni.
La funzione sizeof () può assumere qualsiasi tipo di variabile o dati come argomento, inclusi numeri interi, galleggianti, caratteri, array e strutture.
ritorna
Questa funzione restituisce i byte totali in una variabile o numero di byte presi da un array.
Nota: È importante notare che la funzione sizeof () non include alcun sovraccarico aggiuntivo che potrebbe essere richiesto dall'hardware o dal software. Ad esempio, se si dispone di un array di 10 numeri interi, la funzione sizeof () restituirà le dimensioni dell'array in byte, ma non tiene conto di alcun sovraccarico aggiuntivo che potrebbe essere richiesto dall'hardware o dal software.
Come trovare la lunghezza della stringa usando la funzione sizeof () in Arduino
Il seguente codice prende una stringa e ne restituisce la lunghezza utilizzando la funzione sizeof ().
char mystr [] = "Arduino";
void setup ()
Seriale.Inizia (9600);
void loop ()
per (byte i = 0; i < sizeof(myStr) - 1; i++)
Seriale.stampa (i, dec);
Seriale.print ("=");
Seriale.Scrivi (mystr [i]);
Seriale.println ();
ritardo (50000); // Rallenta il programma
Il codice sopra inizia definendo un array di caratteri chiamato Mystr che contiene la stringa "Arduino".
IL impostare() La funzione ha iniziato la comunicazione seriale. Dentro il ciclo continuo() funzione, esiste un ciclo per iterate su ciascun elemento dell'array Mystr usando una variabile indice i.
La condizione del loop viene sottratta da 1, il che significa che il ciclo funzionerà da 0 alla lunghezza dell'array meno 1. Il motivo per sottrarre 1 è perché la funzione sizeof () restituisce il numero totale di byte richiesti per archiviare l'array, che include il carattere null terminator alla fine della stringa. Dal momento che non vogliamo includere il terminatore null nel nostro ciclo, sottraggiamo 1 dalla lunghezza dell'array.
La funzione Loop stamperà l'indice e il carattere corrispondente usando il seriale.stampa e seriale.Scrivi funzioni. Il programma ritarda quindi per 50000 millisecondi prima di ripetere il loop.
Produzione
Nell'output indicato di seguito possiamo vedere la dimensione di una stringa.
Come trovare la dimensione dell'array usando la funzione sizeof () in Arduino
Ecco un codice di esempio che utilizza la funzione sizeof () per determinare la lunghezza di un array intero:
int myArray [] = 1, 2, 3, 4, 5;
void setup ()
Seriale.Inizia (9600);
void loop ()
int arrayLength = sizeof (myArray) / sizeof (myArray [0]);
Seriale.stampa ("La lunghezza dell'array è:");
Seriale.println (ArrayLength);
ritardo (5000);
In questo esempio, abbiamo un array intero chiamato myarray che contiene i valori da 1 a 5. La funzione setup () inizializza la comunicazione seriale e la funzione Loop () è dove risiede la logica principale del programma.
All'interno della funzione Loop (), utilizziamo la funzione sizeof () per determinare il numero totale di byte richiesti per archiviare l'array MyArray. Dividiamo questo valore per il numero di byte richiesti per memorizzare un singolo elemento dell'array (che è dato da SIGIPIOF (MyArray [0])) per ottenere la lunghezza dell'array. Una variabile intera denominata ArrayLength memorizzerà questo valore.
Quindi usiamo il seriale.print () e seriale.println () funzioni per stampare la lunghezza dell'array. Infine, utilizziamo la funzione Delay () per mettere in pausa il programma per 5 secondi prima di eseguire di nuovo il loop.
Produzione
Nell'output indicato di seguito possiamo vedere la dimensione di un array.
Conclusione
La funzione sizeof () in Arduino può determinare la lunghezza di un array. Passando un array come argomento alla funzione sizeof (), è possibile ottenere facilmente il numero di elementi nell'array, indipendentemente dal suo tipo di dati. È importante notare che sizeof () restituisce le dimensioni dell'array in byte. Per ulteriori descrizioni dettagliate di questa funzione, leggi la descrizione del codice nell'articolo sopra.