elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Sigue las noticias más importantes de seguridad informática en el Twitter! de elhacker.NET


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  [Duda] Punteros a Funciones.
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [Duda] Punteros a Funciones.  (Leído 3,486 veces)
BlackZeroX
Wiki

Desconectado Desconectado

Mensajes: 3.158


I'Love...!¡.


Ver Perfil WWW
[Duda] Punteros a Funciones.
« en: 14 Enero 2011, 02:12 am »

.
¿Siempre se debe declarar int a un puntero de una funcion/proceso?, me estoy leyendo un articulo al respecto que es de C++, pero quisiera saber si en ANSI C es lo mismo o si los punteros a funciones ANSI C son de otra forma.

[congetura]
    * Creo y supongo que se declara con el tipo que devuelve la funcion, similar a la declaracion de un prototipo pero difiriendo de esta.
[/congetura]

Dulces Lunas!¡.


« Última modificación: 14 Enero 2011, 02:22 am por BlackZeroX▓▓▒▒░░ » En línea

The Dark Shadow is my passion.
leogtz
. . .. ... ..... ........ ............. .....................
Colaborador
***
Desconectado Desconectado

Mensajes: 3.069


/^$/


Ver Perfil WWW
Re: [Duda] Punteros a Funciones.
« Respuesta #1 en: 14 Enero 2011, 02:37 am »


[congetura]
    * Creo y supongo que se declara con el tipo que devuelve la funcion, similar a la declaracion de un prototipo pero difiriendo de esta.
[/congetura]



Así es.

Mira un ejemplo:

Código
  1. #include <stdio.h>
  2. void escribir(signed int);
  3. int main(void)
  4. {
  5.    void (*puntero)(int);   /* puntero es un puntero a una funcion */
  6.    puntero = escribir;     /* puntero = direccion del comienzo de la funcion */
  7.    (*puntero)(20);
  8.    return 0;
  9. }
  10. void escribir(signed int numero)
  11. {
  12.    if(numero > 1)
  13.    escribir(numero - 1);
  14.    printf("%d\n", numero);
  15. }
  16.  

Utilizamos el tipo de dato void.


En línea

Código
  1. (( 1 / 0 )) &> /dev/null || {
  2. echo -e "stderrrrrrrrrrrrrrrrrrr";
  3. }
  4.  
http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com
BlackZeroX
Wiki

Desconectado Desconectado

Mensajes: 3.158


I'Love...!¡.


Ver Perfil WWW
Re: [Duda] Punteros a Funciones.
« Respuesta #2 en: 14 Enero 2011, 07:44 am »

.
Gracias por corrovorarmelo, lo que andube leyendo siempre ponian int cuando veia que las funciones era char* o char** o void, se que no esta mal pero se que es una mala practica a largo plazo... y era por esto que deseaba saber realmente esto.

Aquí dejare una de mis practicas.

Código
  1.  
  2. #include<stdio.h>
  3. #include<stdlib.h>
  4.  
  5. char* strcpy(char* str_dest,char* str_src)
  6. /**
  7.     Copia [*str_src] a [*str_dest].
  8.     Retorna el puntero a [str_dest]
  9. **/
  10. {
  11.    char *copyreturn = str_dest;
  12.    while(*(str_dest++)=*(str_src++));
  13.    return copyreturn;
  14. }
  15. char* clone_string(char *msg,unsigned int lenmsg, char *(*Pcopy)(char*,char*))
  16. /*
  17.     Clonea una longitud de *msg y retorna el puntero hacia la misma.
  18.     *msg Cadena entrante a copiarse.
  19.     lenmsg Longitud de *msg.
  20.     *Pcopy Puntero a el proceso que copiara a msg a un nuevo buffer.
  21. */
  22. {
  23.    char *cadena = (char*)malloc(sizeof(char)*(++lenmsg));
  24.    return Pcopy(cadena,msg);
  25. }
  26. int main() {
  27.    char *(*pf1)(char*,unsigned int,char*(*)(char*,char*)) = clone_string;
  28.    char *res = pf1((char*)"Hola Mundo",10,strcpy);
  29.    printf ("%s",res);
  30.    free(res);
  31.    getchar();
  32.    return 0;
  33. }
  34.  
  35.  

Temibles Lunas!¡.
.
« Última modificación: 14 Enero 2011, 08:03 am por BlackZeroX▓▓▒▒░░ » En línea

The Dark Shadow is my passion.
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[c++] Source de uso de punteros a funciones « 1 2 »
Programación C/C++
maxiestuinge 10 5,388 Último mensaje 6 Septiembre 2010, 00:14 am
por 16BITBoy
[C] Estructuras y punteros a funciones
Programación C/C++
Amadeo Magnus 1 6,095 Último mensaje 13 Octubre 2010, 15:05 pm
por Karman
Duda funciones - Básico
Programación C/C++
MasterPunk 3 2,790 Último mensaje 1 Junio 2011, 02:00 am
por Mr.Blue
Duda con punteros
Programación C/C++
cazagavilan 5 2,873 Último mensaje 14 Abril 2012, 05:47 am
por cazagavilan
DUDA Punteros a funciones
Programación C/C++
mechanicalgirl 1 1,452 Último mensaje 5 Enero 2018, 03:22 am
por CalgaryCorpus
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines