a basic like gosub in C
Bruce Holloway
holloway at drivax.UUCP
Thu Feb 27 04:05:32 AEST 1986
In article <202 at crunch.uucp> josh at crunch.uucp (Josh Siegel) writes:
>In basic there is a GOSUB routine that will push the current
> position onto the stack and jump to another line. Then, upon
> hitting a return will return to that place. I wish to write
> something like that in C that will be movable between compilers.
(Sorry I'm not sending MAIL... but it doesn't seem to work from "rn" under
the C shell....)
You should use the setjmp() and longjmp() routines.
Call setjmp with a implementation specific environment buffer. When a
longjmp is called with the same buffer, it returns from the setjmp with
a return code. setjmp returns zero in a normal routine, or the longjmp
parameter if that's wwhere it came from. Hmmm.
jmp_buf env;
func(){
:
:
if(setjmp(env)){
/* Code executed when returning from LONGJMP */
}
:
:
longjmp(env,ret_code);
}
--
+----------------------------------------------------------------------------+
|Whatever I write are not the opinions or policies of Digital Research, Inc.,|
|and probably won't be in the foreseeable future. |
+----------------------------------------------------------------------------+
Bruce Holloway
....!ucbvax!hplabs!amdahl!drivax!holloway
(I'm not THAT Bruce Holloway, I'm the other one.)
More information about the Comp.lang.c
mailing list