Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

Clean up use of sprintf

Abierto
#209 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
4/5
Tiempo estimado
3-5 días
Aptitud para principiantes
28/100
Tipo de issue
Refactorización
Claridad
Bastante claro
Estado de actividad
Estancado
Stack tecnológico
cpp
Área
api, embedded-iot

Línea de trabajo

Localiza las implementaciones de las API de String e IPAddress y los helpers itoa y dtostrf del conjunto de pruebas. Lee primero los pragmas sprintf existentes y las rutas de conversión. Se considera terminado cuando se eliminen las supresiones y se aborden los usos obsoletos de sprintf identificados sin romper String, IPAddress ni las pruebas de String.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

enhancement

In #208 I added pragmas to suppress deprecation warnings related to sprintf that were added in newer versions of GCC and CLang, and which caused compilation failure. These suppressions should be removed.

One usage is in the test suite's implemention of itoa that is needed to run String tests. I have a quick fix for that relying on snprintf but I also thought of just using a more basic implementation of itoa such as the one from K&R or even just copying the implementation from the SAMD core.

Thinking a bit deeper though, the only use in API code is in String and it looks to be unnecessarily double buffering during those conversions. I think there's an opportunity to remove String's dependency on itoa and make it more efficient, which would also eliminate the need for an implementation of itoa in the test suite. I plan to look in to that approach.

A similar use is in the test suite's implementation of dtostrf which delegates the deprecated avr impl. For that, I think String can be improved to avoid the double buffering although it would still delegate to the core for the conversion, assuming the core may have implementation-specific FP support.

The final use was in IPAddress and that looks like it can simply be changed to used snprintf

Lenguaje dominante
C++
Estrellas
307
Forks
152
Métricas de merge de PR
Sin PR fusionados en 30 d

Preparar el entorno

Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de arduino/ArduinoCore-API

Todos los issues de arduino/ArduinoCore-API

Issues similares

Más issues de C++

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.