Chapter 21. C’s Dustier Corners

There be of them that have left a name behind them.

Ecclesiasticus 44:8

This chapter describes the few remaining features of C that have not been described in any of the previous chapters. It is titled C’s Dustier Corners because these statements are hardly ever used in real programming.

do/while

The do/while statement has the following syntax:

do {statement
         statement
} while (expression);

The program will loop, test the expression, and stop if the expression is false (0).

Note

This construct will always execute at least once.

do/while is not frequently used in C. Most programmers prefer to use a while/break combination.

goto

Every sample program in this book was coded without using a single goto. In actual practice, I find a goto statement useful about once every other year.

For those rare times that a goto is necessary, the correct syntax is:

gotolabel;

where label is a statement label. Statement labels follow the same naming convention as variable names. Labeling a statement is done as follows:

label:statement

For example:

for (x = 0; x < X_LIMIT; x++) { 
        for (y = 0; y < Y_LIMIT; y++) { 
            if (data[x][y] == 0) 
                goto found; 
        } 
    } 
    printf("Not found\n"); 
    exit(8);

found:

printf("Found at (%d,%d)\n", x, y);

Question 21-1: Why does Example 21-1 not print an error message when an incorrect command is entered?

Hint: We put this in the goto section. (Click here for the answer Section 21.6)

Example 21-1. def/def.c
#include <stdio.h> #include <stdlib.h> int main() { char line[10]; while ...

Get Practical C Programming, 3rd Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.