View Full Version : Arrays or variables containing executable functions
Jones
2006.05.31, 12:23 AM
Is it possible to have an array or a struct that contains a void/int/float value that is a function? Like saying: This slot can be filled by the name of a function.
Here's what I mean:
(Let's say I have a function called "wootfunc").
typedef struct {
void *func();
} myStruct;
myStruct fooThingy;
fooThingy.func() = wootfunc();
// Now let's execute fooThingy's function:
fooThingy.func();
It's a bit crazy, but is it possible in some way shape or form?
OneSadCookie
2006.05.31, 12:43 AM
typedef struct {
void (*func)(void);
} myStruct;
myStruct fooThingy;
fooThingy.func = wootfunc;
// Now let's execute fooThingy's function:
fooThingy.func();
Zekaric
2006.05.31, 02:28 AM
If you are trying to save functions with different parameters to the same pointer then you will need to do some type casting back and forth to a proper function pointer variable before calling.
Jones
2006.06.01, 11:18 PM
I am actually making a menu structure system, the user simply declares a menu item, gives it a name and a result function, then when my auto-executing functions see it's been clicked, the function set by the user will be run.
Ingenious. ;)
Zekaric
2006.06.02, 12:35 PM
This is more commonly known as a callback sort of system. Very simple to understand and works fine for the most part. There are cases where this isn't as nice but I don't see you hitting that case with your set up; being programmatically generated menu system and not resource or external file based.
vBulletin® v3.6.8, Copyright ©2000-2008, Jelsoft Enterprises Ltd.