FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
punteros... ¿para qué?
Siguiendo con la lista de confesiones y viendo que no me fué tan mal con la confesión de que jamás había usado un Datamódulo en una aplicación en este hilo, tengo la necesidad de ir llenando antiguos baches de conocimiento que tal vez se empiezan a convertir en errores tumorales en mi estilo de programación.
El enunciado-pregunta es sencillo. JAMÁS he usado un puntero en ninguno de mis programas. Tengo una base rudimentaria de lo que es un puntero pero, aunque he visto código de la gente que domina el delphi y la programación (que no es mi caso), y siempre lo usan para una cosa u otra, no he encontrado ninguna situación que no pueda resolverse utilizando las variables y/o constantes comunes y corrientes. La pregunta que me hago es: ¿es necesario o beneficioso en alguna forma utilizar punteros?, ¿Hay algún caso que no pueda resolverse sin hechar mano del mismo? |
#2
|
||||
|
||||
Cita:
Cita:
Si, es beneficioso, pues es mucho mas económico para el procesador y la memoria pasar una referencia a un sector de memoria, que copiar los datos de ese sector de memorias a la hora de asignar un valor. Debe haber infinitas situaciones donde es conveniente el uso de punteros, si bien el ejemplo es algo vago, puedo comentarte que muchas veces podemos asistirnos simplemente con las herramientas del lenguaje, sin necesitar acceder a las direcciones reales de nuestros datos. Saludos! Saludos!
__________________
delphi.com.ar Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla. |
#3
|
||||
|
||||
Cita:
De cualquier forma coincido con Federico. Es necesario saber manejar apuntadores (punteros), sobre todo al lidiar con rutinas de APIs externas, pero hay que reconocer que, a diferencia de otros lenguajes y versiones anteriores de Pascal, en muchas ocasiones no requerirás hacer uso de ellos. // Saludos |
#4
|
||||
|
||||
Pues al igual que con los DataModule, también soy un "forofo" de los punteros, ya que estuve años trabajando en lenguaje C y allí es casi obligatorio.
En rutinas lentas con muchos datos, por ejemplo en arrays, listas, estructuras de datos, etc. al cambiar a punteros se incrementa la velocidad de una manera bastante apreciable, además de que es más cómodo de usar una vez que te acostumbras. |
#5
|
||||
|
||||
Cita:
Internamente utiliza una función de Asignación LStrLAsg definida en System, que hace los pasos que resumí en el comentario. (Si mal no recuerdo, el manejo de strings no es igual para todas las versiones de Delphi) Saludos!
__________________
delphi.com.ar Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla. |
#6
|
|||
|
|||
Cita:
Saludos. |
#7
|
||||
|
||||
Cita:
El primer Assert no falla, luego de la asignación, S y T realmente apuntan a lo mismo. El segundo Assert falla, al modificar S es cuando se crea la copia. // Saludos |
#8
|
|||
|
|||
A mi me pasa que no encuentro funcionalidad a los punteros, seguramente porqué no tenga muy claro el tema, o porqué no haya profundizado en la programación, sólo soy un novato, apenas un año que trabajo con Delphi, es decir, programo "en serio" (a mi un año me parece poco, no sé si es poco o es que soy imbécil y más vale que me dedica a recoger setas (no quiero decir con esto que los que recojen setas son imbéciles, sólo lo aplico a mi caso)).
Ahora he empezado con C, si, he manejado punteros, pero claro, són los ejemplos del libro y ejercicios, si tuvíese que hacer un programa... No se me ocurririan para nada (creo) los punteros. Bueno, no sé, como llevastéis el tema de los punteros al inicio de vuestra vida como programadores? |
#9
|
|||
|
|||
Cita:
aunque tengo algunos conocimientos de punteros casi nunca he tenido q usarlos con Delphi, o mejor dicho siempre los he suado sin saber |
#10
|
||||
|
||||
Cita:
Insisto con que no funciona en todas las versiones igual, recuerdo haber leído que había que tener precauciones en el uso de strings Delphi 6, porque borland hizo un cambio de filosofía que descartó para la versión 7. Sinceramente como no utilizo esta versión no recuerdo cuales son estos cambios.
__________________
delphi.com.ar Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla. Última edición por delphi.com.ar fecha: 09-01-2006 a las 21:59:25. |
#11
|
|||
|
|||
No se preocupen que no hay mareo alguno. Tal vez por deformación universitaria (en química, no informática), mi cerebro se acostumbró a eliminar los conceptos que no entiende rodeándolos por lugares conocido para nunca perderme. Tal vez sea esto lo que me pasa con los punteros, porque si no encuentro una situación en la que sea necesario usarlos nunca los aprenda. En cierta forma es utilizar el trabajo bruto en vez de la inteligencia. Tal vez Dios quería que yo trabajara en los campos de algodón y el hereje le salió científico y campesino de la informática.
Además de conservar mis manos no demasiado cuarteadas, hasta ahora me ha ido bien esquivando dificultades. Entiendo que a veces las API te piden pasar un puntero dentro de una función y eso es lo que hago: pasarle un puntero. No sin pensar en que el idiota que programó esta función podría haber utilizado variables y así hacer que no se note tanto mi ignorancia equina. De todas formas andaba igual. Sí estoy seguro que ahorra tiempo, pero el tiempo no ha sido un parámetro crítico hasta ahora en ninguno de mis programas. En ninguno se notaría la mejora. No vale decir que sí los uso implícitamente porque el Delphi los usa sin que yo me de cuenta. Supongo que sí, pero yo me refería a usarlos en forma explícita. Y leyendo lo que Uds. escriben creo que sí puede llegar a ser beneficioso en cuanto a "economía informática", pero necesario... no lo creo. Tal vez si lo supiera usar podría impresionar un poco a mis colegas aficionados y tal vez a Gunman , pero por ahora tendré que programar con su mismo nivel de... bueno, llamémosle ignorancia . |
#12
|
|||
|
|||
Delfino, no quería decir que no tiene funcionalidad, sino que yo, a la hora de hacer mis programillas en Delphi, no encuentro la necesidad de usarlos por la razón que sea (véase mi anteriror intervención). No pongo en duda la funcionalidad de los punteros ni que sean beneficiosos a la hora de ahorra consumo de memoria y otras ventajas que seguro que tienen, sólo estava utilizando este espacio un poco como de psiquiatria, ya que me he identificado con el cigarra, y pregunto? Es un tema complicado, o como he dicho es que yo soy algo corto? A todos os ha costado, somos sólo yo y elcigarra?
|
#13
|
||||
|
||||
No hace falta cambiar el oficio por el de "recogedor de setas" ni nada por el estilo, aunque para pasar un domingo está bien.
Aprender a usar "correctamente" los punteros es igual que todas las cosas en esta vida: leer y practicar, cuando se sabe ya todo es fácil. |
#14
|
|||
|
|||
Cita:
Última edición por Delfino fecha: 10-01-2006 a las 11:27:32. |
|
|
|