for these simple examples, it doesn't matter much and i would go with the
first method. functionality wise, they are pretty much the same but there
are differences that you might want to observe when your foo function gets
more complicated. for example, the first method has an extra function call
which means it's a tiny bit slower and more importantly, the stock frame
will be different and caller return different trace for this purpose so you
might want to consider 'goto &foo' instead. if none of those matters to
you, i would just use the first method.