Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: C++: Funktio muuttujaan

Kray [26.01.2008 17:45:06]

#

Kun ihmettelin että tuossa glut:issa annetaan esim. tulostusfunktio kutsumalla glutDisplayfunc ja parametrina on sen funktion nimi joka sitten kutsutaan glutMainLoop:in aikana. Mites tälläinen toteutetaan?

Gaxx [26.01.2008 17:49:13]

#

Kyseessä on funktio-osoittimet.

Metabolix [26.01.2008 17:53:17]

#

#include <stdio.h>

typedef int funktiotyyppi(int x, int y);

int summa(int a, int b) { return a + b; }
int erotus(int a, int b) { return a - b; }

int laske(int a, int b, funktiotyyppi *funktio)
{
  if (!funktio) {
    printf("Funktio puuttuu!\n");
    return -1;
  }
  return funktio(a, b);
}

int main(void)
{
  const int a = 10, b = 7;
  funktiotyyppi *funktio;
  printf("summa == %p, erotus == %p\n", summa, erotus);

  printf("funktio = %p\n", funktio = summa);
  printf("funktio(%d, %d) = %d\n", a, b, funktio(a, b));

  printf("funktio = %p\n", funktio = erotus);
  printf("funktio(%d, %d) = %d\n", a, b, funktio(a, b));

  printf("laske(%d, %d, summa) = %d\n", a, b, laske(a, b, summa));
  return 0;
}

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta