A posé cette question sur l'échange de piles de génie électrique et a été dirigé ici:
Assez explicite; comment pourrais-je convertir un float en char *? J'ai un code dans lequel la «résistance» du flotteur est constamment mise à jour. Je voudrais pouvoir mettre à jour la variable 'result' pour prendre la valeur de 'resistance'. Voici une partie du code, au cas où cela aiderait:
const char * result = "";
float resistance = 2.5;
result = resistance; //This bit (obviously) doesn't work
Merci de votre aide!
la source
Fondamentalement, vous essayez de convertir une variable de 4 octets (float) en une chaîne de 4 octets (les variables char ont une taille de 1 octet). Plus d'informations sur les types de données Arduino ici http://playground.arduino.cc/Code/DatatypePractices
Vous pouvez essayer les réponses à ces questions /programming/18270974/how-to-convert-a-float-to-a-4-byte-char-in-c
/programming/24420246/c-function-to-convert-float-to-byte-array
J'avoue que je suis confus par l'utilisation de
const char * result = "";
dans votre exemple.Le mot clé "const" rend la variable "en lecture seule" et vous ne pouvez donc pas la modifier. https://www.arduino.cc/en/Reference/Const
Edit: Malheureusement, je n'ai pas de périphérique Arduino pour tester moi-même les solutions ci-dessus
la source
const
mot clé ne rend pas la variable en lecture seule. La variable ici est un pointeur, et elle n'a pas besoin d'être constante. Leconst
mot-clé qualifie les données pointées , pas le pointeur lui-même. En d'autres termes, vous n'êtes pas autorisé à modifier la chaîne via ce pointeur. Si vous voulez un pointeur constant, déclarez-le commechar * const result
(ouconst char * const result
si vous voulez unconst
pointeur sur lesconst
données).