Retrologic Systems Retrologic Systems Retrologic Systems
Online Jargon File
  RetroGuard  |  RetroCapture  |  Contracting  |  Site Map  |  Contact

fall through - The Jargon File

0 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
Jargon On Your Website    Random Entry (Alt-R)RSS Feed - Random 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.


 
 Copyright © 1998-2006 Retrologic Systems. retroguard | retrocapture | contracting | site map | contact
 All rights reserved. site terms | privacy policy