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;
}