In the long run the time difference between the two will decrease as the optimizer gains maturity, while the difference in ease of maintenance will increase as the human memory of what's going on in the latter piece of code begins to fade. Goto statements should be used sparingly, as in any well-structured code. Continue should be used sparingly and near the top of the loop. Break is less troublesome. Parameters to non-prototyped functions sometimes need to be promoted explicitly.
Problems occur with pointer, integral, and floating-point values.