Zadałem to pytanie na temat wymiany stosów w inżynierii elektrycznej i został skierowany tutaj:
Dość oczywiste; jak miałbym zamiar przekształcić zmiennoprzecinkowe w char *? Mam kod, w którym „opór” pływaka jest ciągle aktualizowany. Chciałbym móc zaktualizować zmienną „wynik”, aby przyjąć wartość „oporności”. Oto część kodu, na wypadek gdyby to pomogło:
const char * result = "";
float resistance = 2.5;
result = resistance; //This bit (obviously) doesn't work
Dzięki za pomoc!
źródło
Zasadniczo próbujesz przekonwertować zmienną 4-bajtową (zmiennoprzecinkową) na łańcuch 4-bajtowy (zmienne char mają wielkość 1-bajtową). Więcej informacji o typach danych Arduino tutaj http://playground.arduino.cc/Code/DatatypePractices
Możesz spróbować odpowiedzi na te pytania /programming/18270974/how-to-convert-a-float-to-a-4-byte-char-in-c
/programming/24420246/c-function-to-convert-float-to-byte-array
Przyznaję, że jestem zdezorientowany używaniem
const char * result = "";
twojego przykładu.Słowo kluczowe „const” powoduje, że zmienna jest „tylko do odczytu” i dlatego nie można jej modyfikować. https://www.arduino.cc/en/Reference/Const
Edycja: Niestety nie mam teraz urządzenia Arduino do przetestowania powyższych rozwiązań
źródło
const
kluczowe nie powoduje, że zmienna jest tylko do odczytu. Zmienna tutaj jest wskaźnikiem i nie musi być stała. Słowoconst
kluczowe kwalifikuje wskazane dane , a nie sam wskaźnik. Innymi słowy, nie wolno modyfikować ciągu poprzez ten wskaźnik. Jeśli chcesz mieć stały wskaźnik, zadeklaruj go jakochar * const result
(lubconst char * const result
jeśli chceszconst
wskaźnik doconst
danych).