client.c 1.1 KB

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