1#include <stdio.h> 2 3extern int var; 4extern void (*func_ptr)(void); 5extern void print_var (void); 6extern void print_foo (void); 7extern int foo; 8extern int var2[2]; 9 10typedef struct 11{ 12 int * var; 13 void (* func_ptr)(void); 14} 15TEST; 16 17TEST xyz = { &var, print_var }; 18 19int 20main (void) 21{ 22 print_var (); 23 24 printf ("We see var = %d\n", var); 25 printf ("Setting var = 456\n"); 26 27 var = 456; 28 29 print_var (); 30 printf ("We see var = %d\n\n", var); 31 32 var = 90; 33 print_var (); 34 printf ("We see var = %d\n\n", var); 35 36 print_foo (); 37 printf ("We see foo = %d\n", foo); 38 printf ("Setting foo = 19\n"); 39 foo = 19; 40 print_foo (); 41 printf ("We see foo = %d\n\n", foo); 42 fflush (stdout); 43 44 printf ("Calling dllimported function pointer\n"); 45 func_ptr (); 46 47 printf ("Calling functions using global structure\n"); 48 xyz.func_ptr (); 49 * xyz.var = 40; 50 xyz.func_ptr (); 51 52 printf ("We see var2[0] = %d\n\n", var2[0]); 53 54 return 0; 55} 56