#include extern int var; extern void (*func_ptr)(); extern void print_var(); extern void print_foo(); extern int foo; typedef struct { int *var; void (*func_ptr)(); } TEST; TEST xyz = { &var, print_var }; main() { print_var(); printf("we see var=%d\n",var); printf("setting var=456\n"); var=456; print_var(); printf("we see var=%d\n\n",var); var=90; print_var(); printf("we see var=%d\n\n",var); print_foo(); printf("we see foo=%d\n",foo); printf("setting foo=19\n"); foo=19; print_foo(); printf("we see foo=%d\n\n",foo); fflush(stdout); printf("Calling dllimported function pointer:\n"); func_ptr(); printf("Calling functions using global structure\n"); xyz.func_ptr(); *xyz.var = 40; xyz.func_ptr(); }