|
Last change
on this file was 607, checked in by bird, 22 years ago |
|
Initial revision
|
-
Property cvs2svn:cvs-rev
set to
1.1
-
Property svn:eol-style
set to
native
-
Property svn:executable
set to
*
|
|
File size:
929 bytes
|
| Line | |
|---|
| 1 | #include <stdio.h>
|
|---|
| 2 |
|
|---|
| 3 | extern int var;
|
|---|
| 4 | extern void (*func_ptr)(void);
|
|---|
| 5 | extern void print_var (void);
|
|---|
| 6 | extern void print_foo (void);
|
|---|
| 7 | extern int foo;
|
|---|
| 8 | extern int var2[2];
|
|---|
| 9 |
|
|---|
| 10 | typedef struct
|
|---|
| 11 | {
|
|---|
| 12 | int * var;
|
|---|
| 13 | void (* func_ptr)(void);
|
|---|
| 14 | }
|
|---|
| 15 | TEST;
|
|---|
| 16 |
|
|---|
| 17 | TEST xyz = { &var, print_var };
|
|---|
| 18 |
|
|---|
| 19 | int
|
|---|
| 20 | main (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 | }
|
|---|
Note:
See
TracBrowser
for help on using the repository browser.