#include "C:\Practice Programs\Puzzle Feuer\Puzzles\defs.h" int i=1; void main() { auto int i, j; // There are two'i' one globle and one local. i = reset( ); for( j=1; j<=3; j++ ) { PRINT2(d,i,j); // All of these 'i' are local. PRINT1(d,next(i)); PRINT1(d,last(i)); PRINT1(d,new(i+j)); } }// end main int reset(void) // The globle 'i' is set to one at instantiation { return(i); // The return value is assigned to 'main's local variable 'i'. } // As the 'for loop' is cycled 'j' increases by one. This gives the 10 11 12 values. int next(int j) { return( j=i++ ); // 'j' gets the 'i' value, and that value is returned. } // The globle 'i' is incremented after the assignment to 'j', and the return. int last(int j) { static int i=10; // 'j' gets the 'i' value, and that value is returned. return( j=i-- ); // 'i' is local variable in 'lasst' so 'j' will always be assigned 10. } int new(int i) // This is 'main's 'i' { auto int j=10; // In 'new' 'j' is a local variable. return( i=j+=i ); // So 10 will always be added to 'i' and that value returned. }