Stellte diese Frage auf Electrical Engineering Stack Exchange und wurde hier gerichtet:
Ziemlich selbsterklärend; Wie würde ich einen Float in einen Char * umwandeln? Ich habe Code, in dem der Float-Widerstand ständig aktualisiert wird. Ich möchte in der Lage sein, die Variable 'Ergebnis' zu aktualisieren, um den Wert 'Widerstand' anzunehmen. Hier ist ein Teil des Codes, falls es hilft:
const char * result = "";
float resistance = 2.5;
result = resistance; //This bit (obviously) doesn't work
Danke für Ihre Hilfe!
quelle
Grundsätzlich versuchen Sie, eine 4-Byte-Variable (float) in eine 4-Byte-Zeichenfolge zu konvertieren (Zeichenvariablen haben eine Größe von 1 Byte). Weitere Informationen zu Arduino-Datentypen finden Sie hier http://playground.arduino.cc/Code/DatatypePractices
Sie können die Antworten auf diese Fragen unter /programming/18270974/how-to-convert-a-float-to-a-4-byte-char-in-c ausprobieren
/programming/24420246/c-function-to-convert-float-to-byte-array
Ich gebe zu, dass mich die Verwendung von
const char * result = "";
in Ihrem Beispiel verwirrt .Das Schlüsselwort "const" macht die Variable zu "schreibgeschützt" und kann daher nicht geändert werden. https://www.arduino.cc/en/Reference/Const
Bearbeiten: Leider habe ich momentan kein Arduino-Gerät, um die oben genannten Lösungen selbst zu testen
quelle
const
Schlüsselwort ist nicht die Variable machen schreibgeschützt. Die Variable hier ist ein Zeiger und muss nicht konstant sein. Dasconst
Schlüsselwort qualifiziert die Daten, auf die verwiesen wird , nicht den Zeiger selbst. Mit anderen Worten, Sie dürfen die Zeichenfolge nicht über diesen Zeiger ändern. Wenn Sie einen konstanten Zeiger möchten, deklarieren Sie ihn alschar * const result
(oderconst char * const result
wenn Sie einenconst
Zeiger aufconst
Daten möchten ).