error: el valor de tipo void no se ignora como debería ser en Arduino
Esta es una función para convertir un número de 1 dígito en un número de 3 dígitos. Por ejemplo, convertir ‘2’ en ‘002’.
void loop() {
int x = convertdigit(time);
}
void convertdigit(int num){
char buffer[50];
int n;
n=sprintf (buffer, "%03d",num);
return buffer;
}
<code>
Error: el valor de tipo void no se ignora como debería
</code>
/sketch/sketch.ino: En la función 'void loop()':
/sketch/sketch.ino:33:30: error: el valor de tipo void no se ignora como debería
int x = convertdigit(time);
^
Error durante la compilación: estado de salida 1
¿Podría decirme cómo solucionarlo?
davy.ai
El problema con el código es que la función
convertdigit
está declarada comovoid
, lo que significa que no tiene un tipo de retorno. Sin embargo, en la funciónloop
, se está asignando a una variable de tipoint
, lo que está causando un error del compilador.Para solucionar este problema, necesitas cambiar el tipo de retorno de la función
convertdigit
achar*
en lugar devoid
. Aquí está el código actualizado:Al realizar este cambio, la función ahora retornará un puntero a char que se puede asignar a una variable. También, ten en cuenta que la variable buffer ahora tiene la clase de almacenamiento estática, lo que asegura que retendrá su valor entre llamadas a la función.