extern int printf(const char*,...); typedef struct test { int number; char* string; } TEST; __code codegear1(TEST); __code codegear2(TEST); __code codegear3(TEST); __code codegear1(TEST testin){ TEST testout; testout.number = testin.number + 1; testout.string = testin.string; goto codegear2(testout); } __code codegear2(TEST testin){ TEST testout; testout.number = testin.number; testout.string = "Hello"; goto codegear3(testout); } __code codegear3(TEST testin){ printf("number = %d\t string= %s\n",testin.number,testin.string); goto exit(0); } int main(){ TEST test = {0,0}; goto codegear1(test); }