#include typedef struct { int fn1, fn; } Fib; #define FibCtor { 1, 0 } int fib( Fib * f ) { int fn = f->fn; f->fn = f->fn1; f->fn1 = f->fn + fn; return fn; } int main() { Fib f1 = FibCtor, f2 = FibCtor; for ( int i = 0; i < 10; i += 1 ) { printf( "%d %d\n", fib( &f1 ), fib( &f2 ) ); } } // Local Variables: // // tab-width: 4 // // compile-command: "gcc Fib.c" // // End: //