A block introduces a new scope, and variables declared at the top of the block are in scope until the end of the block. if a variable exists with the same name outside the block, that variable is hidden, and cannot be referred to inside the block. more ...
In 1968, Edgar Dijkstar declared that the goto statement [is] considered harmful. The C programming language is a block structured language that, while retaining the goto statement, prefers code that avoids gotos.
Block structure means that code flow be restricted to entire blocks, and upwards flow of control be cause by looping constructs that control the block. This discipline makes reasoning about programs easier.
Exceptions to this strict control discipline, which retain block structure advantages, are provided by the break and continue statements. more ...
Blocks introduce lifetimes. An automatic variable, such as a variable declared inside a block, being a procedure block or a block nested inside the procedure block, has lifetime beginning at entry to the block, and ending when exiting the block. This might be difficult to observe experimentally. more ...
ref: gnu.org
LiveC: "It's like you're unraveling a big cable-knit sweater ..." more ...