Esta pergunta foi feita no Electrical Engineering Stack Exchange e foi direcionada aqui:
Bastante auto-explicativo; como eu iria converter um float em um char *? Eu tenho um código no qual a 'resistência' do flutuador está sendo constantemente atualizada. Eu gostaria de poder atualizar a variável 'resultado' para obter o valor de 'resistência'. Aqui está um pouco do código, caso ajude:
const char * result = "";
float resistance = 2.5;
result = resistance; //This bit (obviously) doesn't work
Obrigado pela ajuda!
fonte
Basicamente, você está tentando converter uma variável de 4 bytes (float) em uma sequência de 4 bytes (as variáveis char têm o tamanho de 1 byte). Mais informações sobre os tipos de dados do Arduino aqui http://playground.arduino.cc/Code/DatatypePractices
Você pode tentar as respostas para estas perguntas /programming/18270974/how-to-convert-a-float-to-a-4-byte-char-in-c
/programming/24420246/c-function-to-convert-float-to-byte-array
Admito que estou confuso com o uso de
const char * result = "";
no seu exemplo.A palavra-chave "const" torna a variável como "somente leitura" e, portanto, você não pode modificá-la. https://www.arduino.cc/en/Reference/Const
Edit: Infelizmente eu não tenho um dispositivo Arduino agora para me testar as soluções acima
fonte
const
palavra-chave não torna a variável somente leitura. A variável aqui é um ponteiro e não precisa ser constante. Aconst
palavra-chave qualifica os dados apontados , não o ponteiro em si. Em outras palavras, você não tem permissão para modificar a sequência através desse ponteiro. Se você deseja um ponteiro constante, declare-o comochar * const result
(ouconst char * const result
se você deseja umconst
ponteiro paraconst
dados).