On Thu, Dec 13, 2018 at 10:01 AM Scott Lawrence <[email protected]> wrote:

> On Mon, Dec 10, 2018 at 1:21 PM John R. Hogerhuis <[email protected]>
> wrote:
>
>> In other languages you can't call into the middle of a function. There is
>> one entry point, possibly multiple exit points. There's no chance
>> unbalanced CALL and RETURN. once you return you're jump to the stacked
>> address and you're no longer in the subroutine.
>>
>
> For what it's worth, you certainly can do this in C.  ...And it woks fine
> if the place you jump to is in a function with the same size/number of
> parameters passed in (pushed onto the stack).  Although optimizations that
> the compiler does might screw with that. ;)
>
>
Fair enough. I've seen setjmp/longjmp. It's really weird. I ran across it
in some code creating its own scheduler for a network simulator unit test
harness. Basically it needed to create multiple instances of a protocol
stack to test a IoT mesh network. Is setjmp/longjmp what you're talking
about? Because I don't think you can goto or call into the middle of a
function otherwise.


> By no means is it recommended or even slightly good practice though. ;D
>
> A somewhat similar weird goto-thing is Duff's Device, where you jump into
> the middle of a loop...
> https://en.wikipedia.org/wiki/Duff%27s_device
>
>
Yeah I don't have a problem with that kind of stuff as long as its portable
and you keep the code short.

-- John.

>

Reply via email to