Impressed
Adam D. Ruppe
destructionator at gmail.com
Fri Jul 27 06:28:37 PDT 2012
On Friday, 27 July 2012 at 03:26:22 UTC, Nick Sabalausky wrote:
> I didn't think that was true in C? It's certainly true in D,
> anyway.
It is, C and D have more or less the same goto rules.
goto.c:
===
void a() {
goto cool;
}
void main() {
a();
cool: ;
}
===
$ gcc goto.c
goto.c: In function a:
goto.c:2: error: label cool used but not defined
While you can still kinda sorta spaghetti in C, the fact
that it is limited to a function makes it much easier to
follow. There's only one function to look at, not the
whole program.
The requirement of a label is important too, since any
particular line of code can't be a comes-from point;
unless there is a label there, you can be pretty confident
that the line before is actually run before.
More information about the Digitalmars-d
mailing list