20. september 2010 - 11:27
Der er
4 kommentarer og
1 løsning
funktion fra variable
Hej
Jeg ville vide om det er muligt at kalde en funktion ved hjælp af en variabel i C?
altså om det er muligt at gøre noget ligende dette eller på anden vis hvis det er muligt.
char word[5] = "iword";
word();
void iword(void) {
// function
}
20. september 2010 - 15:36
#1
Leder du efter en function pointer?
Morsomt eksempel:
#include <stdio.h>
#include <stdlib.h>
typedef void (*fptr)();
void f1()
{
printf("f1\n");
}
void f2()
{
printf("f2\n");
}
void f3()
{
printf("f3\n");
}
void f4()
{
printf("f4\n");
}
int main()
{
fptr f[] = { f1, f2, f3, f4 };
int i;
srand(12345);
for(i=0;i<10;i++)
{
f[rand() % 4]();
}
return 0;
}
20. september 2010 - 15:37
#2
Eller leder du efter muligheden for at loade en function paa navn fra en DLL (eller tilsvarende paa andre platforme)?
Kode snippet:
#include <windows.h>
#include <stdio.h>
typedef int (*DF)(int a, int b);
int main()
{
HINSTANCE dll1,dll2;
DF fncptr1,fncptr2;
dll1 = LoadLibrary("d.dll");
dll2 = LoadLibrary("d.dll");
fncptr1 = (DF)GetProcAddress(dll1,"test");
fncptr2 = (DF)GetProcAddress(dll2,"test");
printf("%d %d\n",(int)dll1,fncptr1(12,34));
printf("%d %d\n",(int)dll2,fncptr2(12,34));
return 0;
}