entering main x: 10 entering extern bar x: 10 exiting extern bar x: 20 entering foo. static bar. exiting foo. exiting main x: 40
Comments:
Declaring a function static
enables you to use a name that might otherwise conflict
with the name of a function in another file.
/* --- fileA.c --- */ int x = 10;
/* --- fileB.c --- */ int x; static int bar(int val) { printf(" static bar.\n"); return 2*val; } foo() { printf(" entering foo.\n"); x = bar(x); printf(" exiting foo.\n"); }
/* --- fileC.c --- */ int x; bar() { printf(" entering extern bar x: %d\n", x); x += 10; printf(" exiting extern bar x: %d\n", x); } main() { printf("entering main x: %d\n", x ); bar(); foo(); printf("exiting main x: %d\n", x ); system("pause"); }