Understanding unconditional branching – the dos and (mostly) don'ts of goto
The goto
statement is an immediate and unconditional transfer of program execution to the specified label within a function block. goto
causes execution to jump to the label. In current C, unlike the bad old days, goto
may not jump out of a function block, and so it may neither jump out of one function into the middle of another nor out of one program into another program (neither were uncommon in those days).
The goto
statement consists of two parts. First, there must be a label declared either as a standalone statement, as follows – label_identifier :
– or as a prefix to any other statement, like so – label_identifier : statement
.
And secondly, there must be a goto
statement to that label_identifier
statement. The syntax for the goto
statement is as follows:
goto label_identifier;
The reason for the goto
statement being shunned comes from the bad old days before...