>183
大きく分けると3通りの方法がある
1) 大域変数を使う
static global;
foo() { global = 128; return 0; } /* fooで代入 */
bar() { return global; } /* barで使う */

2) スタティックな変数とポインタを使う
foo(p) int **p; { static q; q = 128; *p = &q; return 0; } /* fooでqのアドレスをpにいれてやる */
bar() { int *p; foo(&p); return *p; } /* barで使う */

3) staticな変数を返す
foo() { static x; x = 128; return &x; } /* fooで代入し返す */
bar() { int *p; p = foo(); return *p; } /* barで使う */

値だけ使うんならもっと楽だけど