Arduino Retour Retour de la fonction
Comme les cartes Arduino sont programmées à l'aide de la langue C / C ++, ces deux langages ne permettent pas de renvoyer un tableau à une fonction comme un argument. Cependant, nous pouvons retourner un tableau à partir d'une fonction en spécifiant le nom du tableau sans aucun index.
Nous devons déclarer une fonction renvoyant un pointeur si nous voulons renvoyer un tableau unidimensionnel de la fonction. Le deuxième point à retenir est que le langage C ne permet pas aux variables locales de retourner les adresses en dehors de la fonction, de sorte que les variables locales doivent être déclarées statiques pour éviter toute erreur de compilation.
Description
Pendant la programmation des tableaux Arduino, nous pouvons initialiser un tableau ayant une taille particulière, une fois le tableau initialisé, sa valeur peut être remplacée à l'aide d'une fonction. Allocation de mémoire dynamique est requis lorsque nous voulons retourner un tableau qui est initialisé à l'intérieur d'une fonction. Pour faire ça malloc () et gratuit() Les fonctions peuvent être utilisées avec des pointeurs dans Arduino.
Le problème est que si une fonction renvoie un tableau utilisant une allocation de mémoire dynamique, le résultat peut être modifié en raison de la fuite de la mémoire et des pointeurs pendants. Ainsi, la meilleure façon de retourner un tableau à partir d'une fonction est d'initialiser un tableau et de modifier ses valeurs en utilisant une fonction au lieu de renvoyer le tableau entier de la fonction.
Créons une fonction pour modifier les valeurs d'un tableau en l'initialisant avec une taille entière constante. Voir le code ci-dessous.
Exemple de code
const int taille = 5; / * Taille du tableau défini * /Dans le code ci-dessus, un tableau est initialisé en utilisant des entiers constants car si nous n'utilisons pas un entier constant, IDE affichera une erreur. Ici, dans le tableau donné, nous n'avons pas stocké de valeurs afin que le tableau sera initialisé avec des valeurs nulles, mais nous pouvons également stocker des valeurs à l'intérieur du tableau pendant l'initialisation.
Ensuite, nous avons créé le Déployer() fonction ayant un type de retour vide pour stocker les valeurs à l'intérieur du tableau. De plus, le type de retour est vide car nous ne voulons rien retourner, nous n'avons besoin que de stocker les valeurs, au cas où il faut de la valeur de retour, nous pouvons modifier le type de retour en fonction de eux tels que int.
Suivant pour la boucle est utilisée pour stocker les valeurs, mais nous pouvons également stocker les valeurs manuellement. Après cette utilisation En série.imprimer() La sortie est imprimée sur le moniteur en série.
Sortir
Des valeurs d'impression de sortie de 0 à 4 renvoyant un tableau à partir d'une fonction:
Conclusion
Cet article couvre toutes les étapes détaillées sur la façon dont nous pouvons initialiser un tableau à l'aide du type de données entier constant et de la valeur de stockage à l'intérieur en utilisant la boucle pour. Plus tard le Déployer() La fonction est appelée à l'intérieur de la partie de configuration du code, ce qui entraîne donc Renvoi du tableau de la fonction.