123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- #include <stdio.h>
- extern int var;
- extern void (*func_ptr)(void);
- extern void print_var (void);
- extern void print_foo (void);
- extern int foo;
- extern int var2[2];
- typedef struct
- {
- int * var;
- void (* func_ptr)(void);
- int * var_with_offset;
- }
- TEST;
- TEST xyz = { & var, print_var, & var };
- const TEST const_xyz = { & var, print_var, & var };
- int
- main (void)
- {
- 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 ();
- printf ("We see var2[0] = %d\n\n", var2[0]);
- printf ("We see const xyz %x %x\n", const_xyz.var, const_xyz.var_with_offset);
- return 0;
- }
|