Branch Table - Jump Table Example in C

Jump Table Example in C

Another simple example, this time demonstrating a jump table rather than a mere branch table. This allows program blocks outside of the currently active procedure/function to be called:

#include #include typedef void (*Handler)(void); /* A pointer to a handler function */ /* The functions */ void func3 (void) { printf( "3\n" ); } void func2 (void) { printf( "2\n" ); } void func1 (void) { printf( "1\n" ); } void func0 (void) { printf( "0\n" ); } Handler jump_table = {func0, func1, func2, func3}; int main (int argc, char **argv) { int value; /* Convert first argument to 0-3 integer (Hash) */ value = atoi(argv) % 4; if (value < 0) { value *= -1; } /* Call appropriate function (func0 thru func3) */ jump_table; }

Read more about this topic:  Branch Table

Famous quotes containing the words jump and/or table:

    If anybody else says it’s like old times, I’ll jump out the window.
    Charlie Chaplin (1889–1977)

    The salt person and blasted place
    I furnish with the meat of a fable;
    If the dead starve, their stomachs turn to tumble
    An upright man in the antipodes
    Or spray-based and rock-chested sea:
    Over the past table I repeat this present grace.
    Dylan Thomas (1914–1953)