Procedura wywołująca procedure z parametru.

0

Witam czy da się zrobić procedure wywołującą procedure która jest w parametrze pierwszej procedury? tzn

int init(int id,int when,int N,int IL,void (*mfn)()) //mfn to właśnie procedura do wywołania
{  
...
mfn();
...
}

i teraz właśnie jak daje procedurę bez parametrów tzn.
init(0,5000,1,1,&test); to działa ale jak chce dać np init(0,5000,1,1,test("A"));
to wyskakuje błąd:
invalid use of void expression.

I jak można zrobić tak aby dało się wywołać tą procedure z parametrem?

0

WTF? Argumentem funkcji jest WSKAŹNIK do funkcji. I w tym pierwszym przypadku:
init(0,5000,1,1,&test);
przekazujesz jako argument adres do funkcji, więc jest ok. Ale nie rozumiem co chciałeś niby zrobić tutaj:
init(0,5000,1,1,test("A"));
? Przekazać funkcje od razu z jakimś argumentem? Tak sie nie da, bo C++ nie obsluguje curryingu, to nie jest język funkcyjny ;]
zapis
test("A")
oznacza WYWOŁANIE funkcji z danym argumentem, w efekcie próbujesz do tej funkcji przekazać WARTOŚĆ zwróconą przez funkcje, a że jest to void to kompilator protestuje. Pomyśl! Co by było jakbyś chciał do funkcji przekazać wartość zwracaną przez jakąś funkcję? Właśnie w taki sposób w jaki to napisałeś...

1 użytkowników online, w tym zalogowanych: 0, gości: 1