Ver Mensaje Individual
  #1 (permalink)  
Antiguo 19/05/2010, 01:05
josepzin
 
Fecha de Ingreso: febrero-2004
Ubicación: Carthagena
Mensajes: 205
Antigüedad: 20 años, 10 meses
Puntos: 0
Ayuda para comprender un codigo

Perdon si el titulo no es muy explicito...

Estoy dando mis primeros pasos con C, y las dudas las voy resolviendo buscando y buscando, pero en este caso no se como buscar esto, asi que peco de preguntar algo seguramente bastante obvio.

Código:
struct in_UDK k;
void *joyfunc;                // pointer to joystick function

k.fire = in_LookupKey('m');   * fill in keys for key joystick *
k.left = in_LookupKey('o');   * in case it is chosen          *
(etc)
...
joyfunc = in_JoyKeyboard; 
dirs = (joyfunc)(&k);
Este codigo es de la libreria SP1, para lectura de joystick del Spectrum y basicamente lo que hace es crear una estructura de datos, asignar valores (las teclas correspondientes a las direcciones y el boton), luego asigna una funciona a otra funcion (casi seguro de esto) y finalmente lee el joystick, y ahi esta mi duda, ya que la llamada que hace es esto:

Código:
dirs = (joyfunc)(&k);
Lo que no entiendo es que tipo de llamada es esta... comprendo que si se llama una funcion deberia ser algo asi:

Código:
dirs = joyfunc(&k);
Pasando como parametro el puntero de "k".

Alguien puede decirme a que se debe eso de envolver el nombre de la funcion con "( )"???
__________________
Retro Invaders : Mi blog

Última edición por josepzin; 19/05/2010 a las 09:01