English Dictionary: fall through | by the DICT Development Group |
3 results for fall through | |
From WordNet (r) 3.0 (2006) [wn]: | |
From Jargon File (4.2.0, 31 JAN 2000) [jargon]: | |
fall through v. (n. `fallthrough', var. `fall-through') 1. To exit a loop by exhaustion, i.e., by having fulfilled its exit condition rather than via a break or exception condition that exits from the middle of it. This usage appears to be _really_ old, dating from the 1940s and 1950s. 2. To fail a test that would have passed control to a subroutine or some other distant portion of code. 3. In C, `fall-through' occurs when the flow of execution in a switch statement reaches a `case' label other than by jumping there from the switch header, passing a point where one would normally expect to find a `break'. A trivial example: switch (color) { case GREEN: do_green(); break; case PINK: do_pink(); /* FALL THROUGH */ case RED: do_red(); break; default: do_blue(); break; } The variant spelling `/* FALL THRU */' is also common. The effect of the above code is to `do_green()' when color is `GREEN', `do_red()' when color is `RED', `do_blue()' on any other color other than `PINK', and (and this is the important part) `do_pink()' _and then_ `do_red()' when color is `PINK'. Fall-through is {considered harmful} by some, though there are contexts (such as the coding of state machines) in which it is natural; it is generally considered good practice to include a comment highlighting the fall-through where one would normally expect a break. See also {Duff's device}. | |
From The Free On-line Dictionary of Computing (15Feb98) [foldoc]: | |
fall through also common) 1. To exit a loop by exhaustion, i.e. by having fulfilled its exit condition rather than via a break or exception condition that exits from the middle of it. This usage appears to be *really* old, dating from the 1940s and 1950s. 2. To fail a test that would have passed control to a subroutine or some other distant portion of code. 3. In C, "fall-through" occurs when the flow of execution in a {switch statement} reaches a "case" label other than by jumping there from the switch header, passing a point where one would normally expect to find a "break". A trivial example: switch (colour) { case GREEN: do_green(); break; case PINK: do_pink(); /* FALL THROUGH */ case RED: do_red(); break; default: do_blue(); break; } The effect of the above code is to "do_green()" when colour is "GREEN", "do_red()" when colour is "RED", "do_blue()" on any other colour other than "PINK", and (and this is the important part) "do_pink()" *and then* "do_red()" when colour is "PINK". Fall-through is {considered harmful} by some, though there are contexts (such as the coding of state machines) in which it is natural; it is generally considered good practice to include a comment highlighting the fall-through where one would normally expect a break. See also {Duff's Device}. |