Sin duda, los punteros son una herramienta indispensable para los sistemas embebidos. Un sólido conocimiento de punteros y la hablidad de utilizarlos eficientemente hace la diferencia entre un programador novato y uno experto. Ellos proporcionan soporte para asignación de memoria dinámica y agregan otra dimensión al control de flujo en un programa.
Los punteros tienen varios usos, incluyendo:
- Crean código eficiente y rápido
- Proporcionan asignación de memoria dinámica
- Hacen expresiones compactas y concisas
- Protegen datos pasados como parámetros a una función
- Proporcionan la capacidad de pasar estructuras de datos mediante un puntero sin ocasionar un exceso de código conocido como “overhead”
Los punteros crean código eficiente y rápido ya que están más cerca del hardware. Esto significa que el compilador puede traducir más fácilmente la oparación en código máquina. El “overhead” es mucho menor al utilizar punteros a diferencia de la cantidad de “overhead” que podría presentarse al utilizar otros operadores. Esto sin duda, mejora la administración de memoria de cualquier dispositivo como puede ser un microcontrolador.
La asignación de memoria dinámica es otro uso potente que mejora la administración de memoria del sistema ya que la reserva de memoria se realiza en tiempo de ejecución, es decir cuando el programa se está ejecutando.
Los punteros representan una herramienta poderosa para crear aplicaciones. Al mismo tiempo es una de las más confusas. Entender la noción de punteros implica tener una sólida base en la idea de variables y tipos de memoria.
Los apuntadores hacen más difícil el código y deberían evitarse en lo posible. Claro, a veces no se puede, pero los programadores novatos suelen abusar mucho de las características “complicadas” que ahorran espacio o velocidad.
Como todo en la vida, hay que ser equilibrados.
No uso punteros, nunca los he usado. Pero me resultan interesantes ahora que los estoy aprendiendo
Más allá del uso eficiente de memoria, no veo mayor utilidad de trabajar con apuntadores. En mi caso trabajo con servidores muy grandes IBM Power 9, donde la memoria ciertamente no es un problema.
La decisión de resolver algunas operaciones con C/C++ responde a su excelente capacidad de manejar multihilos.
Creo que los apuntadores son un dinosaurio que viene de la época cuando la memoria se medía en Kbytes.
Francamente no les encuentro utilidad, más allá del hecho de que darle soporte a programas muy viejos que aún funcionan.
Descalificar a los apuntadores porque usas grandes servidores IBM es como creer que los cortauñas no son útiles porque te dedicas a podar árboles. Desafortunadamente existen miles de aplicaciones donde poner un gran servidor es simplemente imposible, por lo que el uso de cosas preshistóricas como los apuntadores es simplemente el pan de cada día.
los punteros son muy importantes a la hora de trabajar con microcontroladores donde la memoria es muy limitada
Hay un poco de comentario en tu ignorancia. Existen demasiadas aplicaciones, sobre todo en el análisis de grandes cantidades de datos, que es mi área, en las que el uso eficiente de recursos es crítico, aún teniendo grandes recursos de hardware.
Además, por pensar así las cosas se pueden llegar a hacer de forma estrepitosamente ineficiente.
Hola, creo que a ese nivel de hardware si tienes razón, pero en embebidos si puede ser bueno para optimizar el código.