Qu'est-ce que memset () dans Arduino
Le memset est une fonction utilisée dans la programmation Arduino qui peut stocker un nombre spécifique d'octets tirés d'une valeur donnée à sa destination. En utilisant cette fonction, nous pouvons copier un octet de valeur dans l'octet de bloc de mémoire de destination par octet.
Nous allons maintenant discuter de l'utilisation de la fonction memset () dans la programmation Arduino.
Syntaxe memset ()
memset (destination, valeur, n_bytes);
Paramètres memset ()
La fonction memset () a trois paramètres:
1: destination
Les destinations indiquent l'emplacement de la mémoire où la valeur de bloc de mémoire sera définie octet par octet. Tout type de valeur peut être défini ici sous la forme d'octet. La valeur précédente sera remplacée par n nombre d'octets. Si n est supérieur à la taille de l'objet de destination, le comportement de sortie ne sera pas défini.
2: valeur
C'est le point source à partir duquel le caractère sera copié dans le bloc de mémoire de destination. Ici, la valeur est dans entier, mais elle sera convertie en caractère non signé avant d'être copié.
3: n_bytes / longueur
Cela indique le nombre d'octets qui doivent être définis dans le bloc de destination. La fonction memset () prendra des n octets spécifiques à partir d'une valeur donnée et la stockera dans le bloc de mémoire de destination.
Comment utiliser memset () dans arduino
Dans Arduino, nous avons utilisé memset () pour définir des données à partir de n octets de valeur donnée à la destination avec un nombre spécifié d'octets. MEMSET () Copies ou remplace des octets de valeur n sur chacun des n caractères des premiers dans le bloc de destination.
Pour mieux comprendre la fonction memset (), nous prendrons un croquis Arduino et essayerons de copier un octet N sur notre tableau de destination.
void setup()
En série.commencer (115200);
Char Destination [14] = "Linuxhint.com ";
En série.println ("Avant la destination memset:");
En série.println (destination);
memset (destination, '.', 5 * sizeof (char)); / * Remplissez les 5 premiers caractères à partir de la destination [14] avec '.'* /
En série.println ("After memset Destination:");
En série.println (destination);
retour 0;
VOID LOOP ()
Dans l'exemple ci-dessus, nous avons déclaré le tableau des caractères destination. La taille du tableau char est de 14.
Dans la ligne suivante, après avoir déclaré la variable CHAR, nous avons imprimé la sortie du tableau de destination sur le moniteur série comme «Avant la destination Memset".
Après cela, nous avons exécuté un memset () Fonction qui remplacera le tableau de destination par les cinq premiers caractères par la valeur ".»Et le reste du tableau restera tel qu'il est. Ici, la valeur multipliée par Taille de (char) déterminera le nombre d'octets à remplacer dans le bloc ou le tableau de mémoire de destination.
Dans la ligne 8, nous avons imprimé la sortie du tableau de destination après avoir appliqué la fonction memset () sur le moniteur en série. La représentation picturale de la fonction memset () peut être donnée comme ci-dessous:
La sortie sur le moniteur en série est illustrée à la figure ci-dessous:
Comment vider un tableau à Arduino
Pour vider un tableau dans Arduino, nous utilisons également la fonction memset (). La seule différence est maintenant que nous copierons 0 ou null à n octets du bloc de mémoire de destination. Une fois que tous les caractères du tableau sont réglés sur 0, le tableau sera vide. Prenons un exemple de croquis et remplaçons tous les caractères d'un tableau par 0.
void setup()
En série.commencer (115200);
char array [14] = "Linuxhint.com ";
En série.println ("Avant le tableau memset:");
En série.println (tableau);
memset (array, '0', 13 * sizeof (char)); / * Remplissez les 13 caractères du tableau avec 0 * /
En série.println ("After memset array:");
En série.println (tableau);
retour 0;
VOID LOOP ()
Dans le code ci-dessus d'abord, nous avons initialisé la communication série en définissant le taux de bauds après que nous avons défini un tableau char »Linuxhint.com”Avec une longueur de chaîne de 14.
Ensuite, nous avons imprimé le tableau sur le moniteur série avant d'appliquer la fonction memset ().
Dans la ligne 7, la fonction memset () est définie qui remplacera toutes les valeurs du tableau char à zéro octet par octet. Alternativement, nous pouvons dire que notre tableau est désormais vide ne contenant pas de valeurs d'octets. Vous trouverez ci-dessous une illustration de tout le code qui donnera une meilleure compréhension.
Sortie du moniteur en série
Alternativement, nous pouvons également remplacer toutes les entités de tableau par null ou zéro. C'est une autre façon de vider un tableau sans afficher des caractères nuls en sortie. Il nous suffit de modifier la valeur de la fonction memset () qui doit être copiée pour '\ 0'.
memset (array, '\ 0', 13 * sizeof (char));
Conclusion
Dans cet article, nous avons appris comment la fonction memset () est utilisée dans la programmation Arduino. La fonction memset () dans Arduino peut définir ou remplacer les valeurs du tableau octet par octet. De plus, nous avons discuté de la façon dont cette fonction est utile pour vider un tableau. En utilisant cette fonction, vous pouvez optimiser les performances globales du code.